首页 > 其他 > 详细

2. 词法"陷阱"

时间:2019-12-09 21:05:55      阅读:94      评论:0      收藏:0      [点我收藏+]

1. 练习2-1

某些编译器允许嵌套注释。请写一个程序测试,要求:无论是对允许嵌套注释的编译器,还是对不允许嵌套注释的编译器,该程序都能正常通过编译,但是这两者情况下执行的结果却不相同。

#include<cstdio>
#include<cstring>
using namespace std;


int  main(void){
    char c[] = "bufsize /* is 8 bytes" " but len is */ 7 len";
    printf("%s", c);
    return 0;
}

不允许嵌套(已测试):
    bufsize /* is 8 bytes but len is */ 7 len
允许嵌套(根据书中内容解释后得到的):
    bufsize  7 len

  

  

2. 练习2-3

为什么n-->0的含义是 n-- >0,而不是 n- -> 0

n-->0根据贪心法则在遇到>之时已被解释为n--,故最终被解释为n-- > 0。

3. 练习3-4

a+++++b的含义是什么?

由于后置++运算符优先级高于前置++运算符,所以可以解释为(a++)+++b,由于a++之后的结果不能作为左值使用所以后面的只能与b结合形成:(a++)+(++b)。

 

 

2. 词法"陷阱"

原文:https://www.cnblogs.com/hebust-fengyu/p/12012937.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!