c语言中char a[ ][3]={'123','1'} 是对的吗?如果是错的 怎么错

 我来答
金色潜鸟
推荐于2018-03-23 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5713万
展开全部
语法上是允许的。
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|空白|
输出格式里加了一条竖线,为了让你看见空格。
百度网友261013835
2016-01-06 · 超过54用户采纳过TA的回答
知道小有建树答主
回答量:173
采纳率:100%
帮助的人:119万
展开全部
1:需要用双引号"123","1"
2:可能出现数组中字符串越界问题,因为你指定的长度是3,123的话没有无法存放结束符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
447587096
2016-01-06 · TA获得超过5047个赞
知道大有可为答主
回答量:2504
采纳率:70%
帮助的人:1181万
展开全部
要用双引号就对了,是字符串哦“123”,“1”
追问
那"a"中的a不是只是一个字符吗  可不可以用"  "呢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式