数组后用“”和用{}有什么不同

如题所述

int a[5]={1,2,3,4,5}//这个必须用大括号
char b[5]={a,b,c,d,e}//而字符数组可以用大括号也可以用双引号,但是双引号赋值个数必须小于数组元素的个数,如下面
char b[5]="abcd"追问

为什么双引号赋值个数必须小于数组元素的个数,双引号赋值有什么用

追答

因为字符串末尾必须加‘\0'所以要小于元素个数

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-12
双引号括起的是字符串
{} 括起的是 域。
数组声明例子:
char s[10]="abcd"; 声明s是字符串,单元10个,初始化为 字符串"abcd", 下含字符串结束符"\0".
char s[10]={'a','b','c'}; 声明s是字符数组,单元10个,初始化 s[0]='a';s[1]='b';s[2]='c';
单引号括起的是 字符常量(1字节整型量)。

程序中使用 s 时,两种声明 没什么 不同。

例如:
int i;
char s[10]={'a','b','c'};
printf("%s\n",s);
for (i=0;i<3;i++) printf("%c ",s[i]);本回答被提问者和网友采纳
相似回答