c语言 char类型 str[10]="尀0"是对的,那str[10]=0对吗?为什么?

2024-12-03 03:53:39
推荐回答(5个)
回答1:

char str[10]; 是数组,初始化需要用花括号。
char str[10]=0; 不对。 初始化需要用花括号。
char str[10]='\0'; 不对。 给了字符常量。 初始化需要用花括号
char str[10]=NULL; 不对。初始化需要用花括号。
char str[10]={0}; 对,初始化用了花括号。

char str[10]="\0"; 对, 初始化用 字符串。

char *str=NULL; 对,不是数组,是指针,初始化为空指针。

回答2:

可以用一个字符串来初始化字符数组,不能用一个字符/数值来初始化字符数组。
'\0'是字符,可以换成0,它和数值是同一级别的;"\0"是一个字符串,空串,绝不是0,它和字符数组/指针是同一级别的。

回答3:

Str[10]="\0"错 因为"\0"是字符串,Str[10]是一个字符
Str[10]=0对 因为char和int在c里面内存占用大小是一样的,int型的短整会被强制转换成char类型后在付值给Str[10]

回答4:

char str[10] = {0}; /*数组里每个都赋值为0*/

回答5:

正确的初始化(空串):
char str[10]="";
char str[10]={0};
char str[10]={'\0'};
char str[10]="\0";
char str[10]; str[0]=0;
如果是char str[10]=0;这个是错误的,这个不能用在数组初始化上,str[10]=0;可以用到程序的可执行语句中。