c语言中char a[ ][3]={'123','1'} 是对的吗?如果是错的 怎么错
展开全部
语法上是允许的。
char a[ ][3]={'123','1'}; 声明 a 是 char 型 2 维数组,并初始化。
第一维不定,由初始化值确定,第二维大小是 3。
根据初始化,可以定出 第一维是 1。
初始化用的是字符常量,但 '123' 数值超界,丢弃溢出部分,留下 '3'.
所以 , 等于声明了:
char a[1][3]={'3','1','\0'};
若打印:
int i; for (i=0;i<3;i++) printf("%c|",a[0][i]); 将得到 3|1|空白|
输出格式里加了一条竖线,为了让你看见空格。
char a[ ][3]={'123','1'}; 声明 a 是 char 型 2 维数组,并初始化。
第一维不定,由初始化值确定,第二维大小是 3。
根据初始化,可以定出 第一维是 1。
初始化用的是字符常量,但 '123' 数值超界,丢弃溢出部分,留下 '3'.
所以 , 等于声明了:
char a[1][3]={'3','1','\0'};
若打印:
int i; for (i=0;i<3;i++) printf("%c|",a[0][i]); 将得到 3|1|空白|
输出格式里加了一条竖线,为了让你看见空格。
展开全部
1:需要用双引号"123","1"
2:可能出现数组中字符串越界问题,因为你指定的长度是3,123的话没有无法存放结束符。
2:可能出现数组中字符串越界问题,因为你指定的长度是3,123的话没有无法存放结束符。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要用双引号就对了,是字符串哦“123”,“1”
追问
那"a"中的a不是只是一个字符吗 可不可以用" "呢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询