- C语言课程
- 1.初识C语言
- 《C陷阱与缺陷》
- int 和 long都是4个字节,两个有什么区别吗?
- vs环境下long>=int 即可;
- 经实验 vcc编译下long也是4
- 12.34 编译器会默认为double类型(占据空间大),若要定义为float类型需要写为 12.34f
1. 如果一个整形常量的第一个字符是数字0,那么该常量被视作八进制数。因此,10与010的含义截然不同。
2. 用双引号引起的字符串,代表的却是一个指向无名数组起始字符的指针,该数组被双引号之间的字符以及一个额外的二进制为零的字符’ ’初始化
3. char c=‘yes’,VC++ 6.0和gcc采取的做法是,依次用后一个字符覆盖前一个字符,最后得到的整数值是最后一个字符的整数值,即115。
4. 下面的表达式表示的是将0强制类型转换为一个指针,,该指针指向返回值为void的函数,整个语句的含义为:调用存储位置为0的子例程
(*(void*())0)();
5. !=的优先级高于&,加法运算符的优先级要比移位运算的优先级高
- 优先级最高者并不是真正意义上的运算符,包括数组下标,函数调用操作符,结构体成员选择操作符
- 单目运算符的优先级仅次于上述运算符,且结合新是自由向左。
- 接下来是双目运算符,双目运算符中,算术运算符优先级最高,移位运算符次之,关系运算符再次之,接着是逻辑运算符,赋值运算符,最后是条件运算符。
- 任何一个逻辑运算符的优先级低于任何一个关系运算符。
- 移位运算符的优先级比算术运算符低,但是比关系运算符高。



