#include <stdio.h>
int main()
{
int a=8,b=9,c;
c=a+++b;
printf("%d%d%d\n",a,b,c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上面的程序输出a=9 b=9和c=17.在a+++b为什么编译器会a++,然后用增加b.为什么不考虑a +和
++b?是否有特定的名称a+++b.请帮我理解.
cni*_*tar 32
我喜欢Expert C Programming的解释:
ANSI标准规定了一种被称为最大蒙克策略的约定 .Maximal munch表示,如果下一个标记有多种可能性,编译器将更喜欢咬掉涉及最长字符序列的标记.所以这个例子将被解析
Run Code Online (Sandbox Code Playgroud)c = a++ + b;