以下是引用夏秀蔓在2017-6-13 11:38:55的发言:
main()
{int x=0,z,y=z=-1;
x=x---z-y;
printf("x=%d\n",x);
}输出结果是:
x=x---z-y; 与 x = x-- - z - y; 是一致,不能解释为:x = x - --z - y;。
“C语言有这样一个规则:每一个符号应该包含尽可能多的字符。也就是说,编译器将程序分解成符号的方法是,从左到右一个一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组 成部分;如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号。”