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 同样会提示出错 这是为什么?是因为在初始化中不能给数组赋全体值吗?
求教 展开
加不加花括号有不一样的地方吗?
问题二 char temp = 'a' , 'b' ;
这样编译器提示错误 但先做定义char temp; 然后temp = 'a','b';就没错了 这是为什么?
数组不能这样赋值可以理解 但是单个字符为什么会出错?
问题三 char temp; temp = 'a','b';
虽然不提示错误 但是输出的是temp值是a 这是为什么? 不应该是b吗?
问题四 char temp[] = {"Hello", "World"};
这个我想作为一个逗号运算符 即赋world给temp 同样会提示出错 这是为什么?是因为在初始化中不能给数组赋全体值吗?
求教 展开
展开全部
问题一 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"}; 这个为什么不能用逗号来理解呢 我赋了两个值 但我只取第二个 这个样子 为什么不能通过编译呢?
展开全部
2-4 c基础知识 3逗号运算符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2楼说的很详细了,逗号运算符的作用是将若干表达式连接起来。它的优先级别在所有运算符中是最低的,结合方向是"自左至右"的。其值是最后一个表达式的,其间所有的都要计算,你所说的a=12+(s+2,d+4);先算s+2.的4,然后算d+4,最后逗号表达是式的值是d+4=7,整个表达式的值是12+7=19,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
掌握了以下4点,逗号表达式的运用就不是问题了: 1、逗号表达式格式:表达式1,(表达式2,表达式3,... 表达式n) 2、逗号表达式的计算过程为:从左往右逐个计算。 3、逗号表达式是作为一个整体的,它的最终结果就是最后一个表达式(即表达式n)的值。 4、逗号运算符的优先级别是所有运算符中最低的。
追问
谢谢你 但更希望您能解释下我的具体问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询