趣味C语言
2013-11-22 11:30
176 查看
一、词法陷阱
1.int a=021;则a的值是多少? (021被编译器认为是八进制)
2.z=b/*p;与z=b/ *p的区别 (前者/*被看成一个标示符)
二、语法陷阱
1.运算符的优先级问题:(依次降低)
(1)数组下标、函数调用、操作各结构成员选择操作符(->和.) (结合方式:从左到右)
(2)单目操作符 (结合方式:从右到左)
(3)双目运算符 (算术>移位>关系>逻辑>赋值) (结合方式:从左到右)
(4)三目运算符(?:) (结合方式:从右到左)
2.函数的返回类型缺省定义为int类型
3.可以对数组名解引用吗?答:可以,*数组名可以取数组中元素
三、语义陷阱
1.空指针:用0或NULL定义空指针是等同的,因为库文件中有宏定义#define NULL 0
2.两个有符号的相加会溢出,而两个无符号的相加不会溢出
1.int a=021;则a的值是多少? (021被编译器认为是八进制)
2.z=b/*p;与z=b/ *p的区别 (前者/*被看成一个标示符)
二、语法陷阱
1.运算符的优先级问题:(依次降低)
(1)数组下标、函数调用、操作各结构成员选择操作符(->和.) (结合方式:从左到右)
(2)单目操作符 (结合方式:从右到左)
(3)双目运算符 (算术>移位>关系>逻辑>赋值) (结合方式:从左到右)
(4)三目运算符(?:) (结合方式:从右到左)
2.函数的返回类型缺省定义为int类型
3.可以对数组名解引用吗?答:可以,*数组名可以取数组中元素
三、语义陷阱
1.空指针:用0或NULL定义空指针是等同的,因为库文件中有宏定义#define NULL 0
2.两个有符号的相加会溢出,而两个无符号的相加不会溢出
相关文章推荐
- Rcpp实现R与C++的无缝连接
- C语言字符串拷贝和连接小技巧(可避免内存不足的问题)
- 实现字符串(char*)的前N个字符放到后面
- c++ string 用法详解
- C++类的私有成员变量和函数的隐藏
- Accelerated C++ Exercise 11-0(自定义VECTOR模板)
- C语言序列点问题总结(大多数高等教育C语言教学课程的漏洞)
- 使你的C/C++代码支持Unicode
- C++中构造函数的那点事
- Google C++测试框架系列入门篇:第二章 开始一个新项目
- C++类构造函数初始化列表(详解)
- C++语言中类的成员变量初始化(转…
- C++电话面试
- c/c++通过socket发送结构体
- C++--深入分析MFC文档视图结构(项…
- C++指针和引用的区别
- C语言中的typeof关键字
- C++中那些不常用的关键字
- C++的头文件和实现文件分别写什么…
- C++的头文件和实现文件分别写什么&…