学习笔记:c语言中词法陷阱
2015-07-24 00:47
316 查看
单个字符是独立的 有着自己特定的意义但是如果组合到一起就会有不同的用法 从而也产生了很多误区
1.‘=’和‘==’
2.’&’,’|’和’&&’,’||’
‘&’ 和’|’ 是位运算符
‘&&’和’||’是逻辑运算符
主要想强调逻辑运算符有“短路”的性质
3.”贪心“法则
C语言中有单字符符号也有多字符符号
但是C语言对这个有一个简单的原则:每一个符号应该包含尽可能多的字符 处理这种问题的方法就是运用括号或者空格来区分
4.八进制和十进制
八进制的数以0开头但我们正常理解045就是45的意思但是计算机会以八进制的方式来处理 所以不建议这样写
1.‘=’和‘==’
if(x=y){} //先将y的值赋给x,再判断是否为0 if(x==y){}//判断x和y是否相等 相等为1 不等为0
2.’&’,’|’和’&&’,’||’
‘&’ 和’|’ 是位运算符
‘&&’和’||’是逻辑运算符
主要想强调逻辑运算符有“短路”的性质
int i = 1; int j = 2; if(i==1&&j=3) // 运行之后 i=1 j=3 因为i==1为真 会继续运行j=3这个赋值语句 if(i==2&&j=3) /*运行之后 i=2 j=2 因为i==2为假 所以程序短路不会继续执行 j还是原来的2*/
3.”贪心“法则
C语言中有单字符符号也有多字符符号
但是C语言对这个有一个简单的原则:每一个符号应该包含尽可能多的字符 处理这种问题的方法就是运用括号或者空格来区分
y=x/*p /*p p指向除数 */(会以为是赋值语句 y=x 后面以为是注释) y=x/(*p) /*p p指向除数 */(y对*p取整)
4.八进制和十进制
八进制的数以0开头但我们正常理解045就是45的意思但是计算机会以八进制的方式来处理 所以不建议这样写
相关文章推荐
- C++11新特性
- Friends
- C++“隐藏实现,开放接口”的实现方案
- 用C语言操作MySQL数据库的通用方法
- 《高质量程序设计指南C/C++语言》笔记总结
- c++ 控制台版 扫雷游戏
- C++中L和_T()之区别
- C++标志粘贴##怎么使用
- Break Standard Weight
- 利用c语言做简单的迷宫小游戏
- 利用c语言做简单的迷宫小游戏
- 游戏服务器排行榜的设计
- 在C++中实现foreach循环,比for_each更简洁!
- c++引用的说明与理解
- C语言标准库定义(stdlib.h)
- [C++] zlatlcv: ATL字符串转换辅助库。能很方便的将UTF-8字符串转为TCHAR等字符串
- 插入排序C++
- iOS开发分分钟搞定C语言 —— 数据类型
- 快速排序算法
- 快速排序C++实现