前言
- 最近为了加深对C语言概念的理解,
其实是为了应付理论考试,开始刷C语言的MQC1000题,在这里记录一些易错点,留给日后复习,说不定也能帮后学者一点点小忙。
整理
- 诸如short、int等基本数据类型的字节大小是由编译器决定的,我们可以随意定义一个数,然后用sizeof()来看。比如大部分编译器int是4个字节,但是有些编译器int占8个字节。
- 枚举类型的初始值是按照就近递增的原则,寻找左端最近赋值变量依次+1,没有赋值的话,则第一个默认为0(感谢舍友指正)
- #define 和 const 不能重复使用同一个常量名
- 字符型指针的读入不会因为遇到“\0”而结束
- C90标准不允许空循环,但C99标准允许空循环
- 取余计算时不能使用小数,而且必须为int类型
- x<<2是指将x向左移动两位,即乘以2的2次方
- unsigned int型与signed char型比大小时,编译器会把小于int型的类型强制转化为int型,这时候符号位的数字会变成数值位,如果是负数就变为1
- getchar()函数的返回值是用户输入的第一个字符的ASCII码
- 对于i++与++i的各种用法和区别,我找到了一个不错的解释:https://blog.csdn.net/fighting_kangle/article/details/51945414
- 关于位运算符:https://blog.csdn.net/qq_35535992/article/details/53863009
- 关于运算符优先级表:https://blog.csdn.net/huangblog/article/details/8271791
- 如果用一个数处以 0 的话,会报错:‘floating point exception’
后记
最后理论考试在及格线上低空飞过,理论知识还是得慢慢积累,临时突击的效果还是差了点的。