您的位置:首页 > 编程语言 > C语言/C++

趣味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.两个有符号的相加会溢出,而两个无符号的相加不会溢出
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: