读书笔记 · C陷阱与缺陷 · 第1章 词法“陷阱”

来源:互联网 发布:华为淘宝官方旗舰店 编辑:程序博客网 时间:2024/06/05 03:37
1、=与==不同

2、y = x /*p

/*被编译器理解为一段注释的开始

3、不同机制的表示和打印(八进制、十六进制)

    int a, b, c;    a = 077;    b = 0xf;    c = 0XE;     printf("a = %d\nb =%d\nc = %d\n", a,b, c);    printf("a = %o\na =%x\na = %d\n", a,a, a);

4、用单引号引起的一个字符代表一个整数。用双引号引起的字符串,代表的却是一个指向无名数组起始字符的指针,该数组被双引号之间的字符以及一个额外的二进制值为零的字符’\0’初始化。

5、a+++++b的含义是什么


    int a = 1, b = 1, c;    // c = a+++++b;    c = a++ + ++b;    printf("a = %d, b =%d, c = %d\n", a,b, c);

贪心法,又称大嘴法,每一个符号应该包含尽可能多的字符。因此,a+++++b会被分解为a++ ++ +b

6、测试C编译器是否允许嵌套注释


嵌套注释对于暂时移除一块代码很有用,在这块代码之前加上一个注释开始符,在代码之后加上一个注释结束符,就一切OK了。然而,这样做也有缺点:如果用注释的方式从程序中移除一大块代码,很容易让人注意不到代码已经被移除了。但是,C语言定义并不允许嵌套注释。

0 0
原创粉丝点击