C语法的几个小测试,十分无聊……
#include<stdio.h> int main() { int a=2,b=1; /* 验证表达式正确的运算方式,gcc对a+++b是以(a++)+b来处理的,或与规范有关,但确实“贪心” */ printf("a+++b = %d,\ta = %d\n",a+++b,a); /* 验证括号中逗号表达式的作用,取最后一个逗号后的值,但括号内所有运算照旧 */ printf("(a++,0,a-b)+b = %d, a = %d\n",(a++,0,a-b)+b,a); /* 证实:先进行“+”运算,然后再处理相关变量右边的“++”问题 */ b+=a++; printf("b = %d, a = %d\n",b,a); /* 会有些警告,但gcc能编译出结果 */ a+=a++; printf("a = %d\n",a); /* 再次证实:先依次进行“+”运算,然后再依次处理变量右边的“++”问题 */ printf("a+++a+++a++ = %d, a = %d\n",a+++a+++a++,a); return 0; }
随意系列;欢迎指正。