标签:blog 运算符 std 一个 ima 级别 逗号操作符 语言 font
逗号操作符,是优先级最低的一个。
eg1:
#include<stdio.h> int main() { int a,b; a=b=1; b=a++,b++,++a; printf("b=%d\n",b); return(0); }
eg2:
#include<stdio.h> int main() { int a=8; printf("%d",(a=3*5,a*4)); return(0); }
c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14。(a=3*5,a*4)的值是60。
表达式说明
表达式1,表达式2,表达式3,...... ,表达式n
逗号表达式的要领:
(1) 逗号表达式的运算过程为:从左往右逐个计算表达式。
(2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。
(3) 逗号运算符的优先级别在所有运算符中最低。
这样eg2输出60就没有疑问了,那么eg1呢?
eg1中,先执行 b=a++ ,此时 b 为 1 。 然后 b++ ,所以 b 的值 最终为 2。
逗号操作符,让运算顺序有了先后,故看到a++和++a在同一表达式中时不要以为是UB。
标签:blog 运算符 std 一个 ima 级别 逗号操作符 语言 font
原文地址:http://www.cnblogs.com/yangguang-it/p/7294491.html