char a[20]; a="good";
时间: 2023-11-28 07:49:58 浏览: 80
这段代码有错误,因为字符数组在定义时需要用一对大括号 {} 来初始化,而不能直接用赋值运算符 = 来赋值。正确的写法应该是:
```c++
char a[20] = "good";
```
这样就将字符数组 a 初始化为包含字符串 "good" 的字符数组了。
相关问题
char str[5]="good!"为什么不能进行字符串赋初值
这个回答有误,请忽略。
选项A中的char str[5]="good!";可以进行字符串赋初值,其含义是定义了一个长度为5的字符数组str,并将“good!”这个字符串赋值给了这个数组,注意:字符串末尾还有一个'\0'的结束符,因此数组大小要比字符串长度多1。
选项B中的char str[]="good!";同样可以进行字符串赋初值,它的含义是定义了一个字符数组str,并将“good!”这个字符串赋值给了这个数组,由于数组的大小没有指定,编译器会根据字符串的长度自动计算数组的大小,同样也会在末尾自动添加'\0'的结束符。
因此,选项A和B都是可以进行字符串的赋初值的。
char *a[4]={ "good"}正确吗;
这是一个定义了长度为4的字符指针数组,并且只初始化了第一个元素的数组。这段代码可能会导致访问未初始化的内存,因为除了第一个元素外,其他元素都没有被初始化,它们的值是未定义的。如果想要定义一个数组来存储4个字符串,可以这样写:
```
char *a[4] = {"good", "morning", "afternoon", "evening"};
```
阅读全文