C语言中,赋值语句a=a++,i++;是什么意思?谢谢

如题所述

是这样的:
语句a=a++,i++; 是一个逗号表达式
逗号表达式的格式是表达式1,表达式2,表达式3...表达式n

逗号表达式的值等于最后一个表达式的值,各个表达式之间可以没联系。
所以i++的值就是整个式子的值,与a无关。追问

首先谢谢您的回答,那a=a++,i++;符不符合C语言规定的赋值语句?按您所说,那个式子就不是赋值语句了?谢谢

追答

符合
1.先计算a++,然后赋值给a;
2然后计算i++;
i++就是最后的值。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-25
a++就是a的自加,虽然说 a=a+1 和意思一样,但是a++的效率比a=a+1高很多!追问

那后面跟着的i++对a的赋值有什么关系?谢谢

追答

没什么关系,你现在还没将两个关联在一起,现在是两个毫不相干的两部分。表达式的值以最后一个为主。

第2个回答  2013-01-25
1、计算a=a++

2、计算i++
3、第2步的计算结果作为整个表达式的最后结果,并丢弃,与a的赋值无关 。
第3个回答  2013-01-25
自加的意思,a+1赋给a追问

那后面跟着的i++对a的赋值有什么关系?谢谢

追答

没关系的,i++是i的赋值

第4个回答  2013-01-25
a++等于a=a+1。。。追问

那后面跟着的i++对a的赋值有什么关系?谢谢

相似回答