在c语言中,char str[10]; str="Hello"; char *str; str="Hello";第二个语句为啥错误
时间: 2024-03-15 10:45:21 浏览: 59
C语言中常见得错误汉语解释
第二个语句`char *str; str="Hello";`是错误的,因为在C语言中,字符指针变量必须先分配内存空间,然后才能存储字符串常量。
正确的做法是先定义一个字符数组或者动态分配内存,然后再将字符串常量赋值给字符指针变量。例如:
```c
char str[10] = "Hello";
char *p = str; // 将字符数组的首地址赋值给字符指针变量
```
或者使用动态内存分配的方式:
```c
char *p = (char *)malloc(sizeof(char) * 10);
strcpy(p, "Hello");
```
这样就可以正确地使用字符指针变量了。
阅读全文