C语言中的逗号运算符使用

问题一chartemp[]={"Hello"};和chartemp[]="Hello";加不加花括号有不一样的地方吗?问题二chartemp='a','b';这样编译器提... 问题一 char temp[] = {"Hello"}; 和char temp[] = "Hello";
加不加花括号有不一样的地方吗?
问题二 char temp = 'a' , 'b' ;
这样编译器提示错误 但先做定义char temp; 然后temp = 'a','b';就没错了 这是为什么?
数组不能这样赋值可以理解 但是单个字符为什么会出错?
问题三 char temp; temp = 'a','b';
虽然不提示错误 但是输出的是temp值是a 这是为什么? 不应该是b吗?
问题四 char temp[] = {"Hello", "World"};
这个我想作为一个逗号运算符 即赋world给temp 同样会提示出错 这是为什么?是因为在初始化中不能给数组赋全体值吗?
求教
展开
 我来答
老冯文库
2017-07-21 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8733

向TA提问 私信TA
展开全部
问题一 char temp[] = {"Hello"}; 和char temp[] = "Hello";
这两个字符数组是一样的。

问题二
char temp = 'a' , 'b' ;  //编译错误

char temp; temp = 'a','b'; //正确,temp得到'a'。'b'未起作用。
char temp; temp = ('a', 'b'); //正确,temp得到'b',这才是真正的逗号表达式

又如:
int a = 1, b = 2, c = 3;
c = a++, b++; //b++未执行
printf("%d %d %d\n", a, b, c); //输出“2 3 1”

问题三 char temp; temp = 'a','b';
同上。

问题四 char temp[] = {"Hello", "World"}; //编译错误
temp是一个字符数组,也可以表示存储一个字符串,但{"Hello", "World"}这个数组中的每个元素都是一个字符串,说明它已经是一个二维数组了,不能使用一维数组temp接收,除非这样:
char *temp[] = {"Hello", "World"};
追问
谢谢您  char temp[] = {"Hello", "World"}; 这个为什么不能用逗号来理解呢  我赋了两个值 但我只取第二个  这个样子  为什么不能通过编译呢?
虎头帮主
2020-02-22
知道答主
回答量:17
采纳率:0%
帮助的人:1.7万
展开全部

2-4 c基础知识 3逗号运算符

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
洛宁慕云露
2019-11-01 · TA获得超过3855个赞
知道大有可为答主
回答量:3170
采纳率:31%
帮助的人:259万
展开全部
2楼说的很详细了,逗号运算符的作用是将若干表达式连接起来。它的优先级别在所有运算符中是最低的,结合方向是"自左至右"的。其值是最后一个表达式的,其间所有的都要计算,你所说的a=12+(s+2,d+4);先算s+2.的4,然后算d+4,最后逗号表达是式的值是d+4=7,整个表达式的值是12+7=19,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
波暖梦wK
2017-07-21 · TA获得超过211个赞
知道小有建树答主
回答量:239
采纳率:16%
帮助的人:57.7万
展开全部
掌握了以下4点,逗号表达式的运用就不是问题了: 1、逗号表达式格式:表达式1,(表达式2,表达式3,... 表达式n) 2、逗号表达式的计算过程为:从左往右逐个计算。 3、逗号表达式是作为一个整体的,它的最终结果就是最后一个表达式(即表达式n)的值。 4、逗号运算符的优先级别是所有运算符中最低的。
追问
谢谢你 但更希望您能解释下我的具体问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式