C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?
int a = 5, b = 7, c;
c = a+++b;
这个问题将做为这个测验的一个愉快的结尾。不管你相不相信,上面的例子是完全合乎语法的。问题是编译器如何处理它?水平不高的编译作者实际上会争论这个问题,根据最处理原则,编译器应当能处理尽可能所有合法的用法。因此,上面的代码被处理成:
c = a++ + b;
因此, 这段代码持行后a = 6, b = 7, c = 12。
珊珊 10:24:43
要看优先级别了
珊珊 10:24:53
先是c=a+b
珊珊 10:25:04
然后执行a++
珊珊 10:25:21
+后的级别>++的级别
珊珊 10:25:29
+号的级别>++的级别
回答问题的10个程序员里,5个说这个不能这样写,2个算错了,3个人算对