【C语言】数据类型与表达式避坑指南

说在前面:是一个C语言新手,很新的新手,在这个专栏中记录一些学习心得和笔记。

最近做了《C程序设计习题与解析》的第二章“数据类型和表达式”,结合笔记总结出了一些易错点和注意事项,如下:

一.关于“常量”

1.关注进制,尤其是八进制容易忽视,如0123指八进制下的123,容易误判成十进制下的123

2.关注每一个位上的数是否在可取范围之内,如八进制中不能出现8、9、f等,0668就是一个不合法的表达。特殊:0开头的八进制与 \ 转义出的八进制容易忽视可取范围

3.关注是否为转义字符,如char a=‘\70’中,单引号内看起来有三个符号,不能赋值给字符型a,实际上表示八进制下的70,只有一个符号,该表达式是合法的

4.数据类型为浮点数时,如果数据的值为整数,应加上小数点,如4应写成4.0

5在二进制表达中,右起为第0位而不是第一位。如保留第1和第7位时应保留从流变开始数的第二个和第八个数字

6.整形数据在计算机中的存储形式为补码,尤其对于负数要注意转换

7.char a=2与char a='2'的区别

8.字符串常量所占内存为字符串中的字符个数+1:字符串结尾会自动补一个'\0'作为终止符

二:关于“标识符”

1.注意不能是保留字(关键字),如“do”就是一个非法标识符

2.开头只能是字母或下划线。不能为数字

3.标识符中只能包含数字、字母、下划线

三:关于“表达式”

1.将与变量数据类型不同的数据赋值给变量时,发生隐式类型转换,容易在后期导致错误,但该表达式为合法表达式

2.取余运算符%的运算对象必须为整数

3.两个整数相除时结果为整数,1\3的计算结果为0

4.赋值运算符、复合赋值运算符的优先级最低

5.&&与||中第二个运算对象不一定运算

6.关注运算符的优先级顺序,部分运算符优先级如下:

四则运算>左移右移>关系运算符>其余位运算符>逻辑与,逻辑或>条件运算符>赋值运算符

7.由逻辑运算符和数据组成的表达式计算结果为0或1,可以作为一个整体参与运算。如(3>2)+1的运算结果为2

8判断两数相等用“==”,不是“=”

9.需要对浮点数进行相等判断时,应判断相对大小

10.关系运算符不连续比较

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值