使用语句的返回值

0 c return statements

我想知道是否可以在C中使用语句的返回值.

例如:如果我从那开始,a=0;那么我知道表达式a++将返回0而a+=1将返回1.但是在谈论语句时,a++;和之间是否存在语义差异a+=1;

起初,它们看起来都有类似的行为,因此,唯一的区别可能是存在使用语句返回值的方法.可能吗?

Pot*_*ter 7

语句没有返回值.表达式具有值(除非类型void).有些表达也有副作用.

a++具有等于​​原始值的值,a并且a+=1其值大于原始值a.

分配新值a是副作用.两种表达都有相同的副作用.

关于这一点,没有什么比这更复杂了.请注意,除非存在序列点,否则取决于同一语句中的副作用(不仅仅是相同的子表达式)会产生未定义的行为.同一语句中的多个副作用和副作用依赖项是一个更高级的主题,因此最好保持赋值语句的简单性.