经过一段时间的摸索磨合,今天也该进入正轨了,带着问题进入深入学习阶段,目前的主要问题是“基础知识概念仅仅认识并未理解无法正确、熟练应用”。今天主要深入学习第二章“类型、运算符与表达式”,一边发现问题一边解决问题。
1、声明语句说明变量的名字及数据类型,变量初始化赋值就要用到赋值运算符(=、+=、-=、*=、/=、%=、<<=、>>=、&=),运算符指定将要进行的操作,表达式即把变量或常量等通过运算符组合起来生成新的值。
2、const常量与#define符号常量有什么区别①很明显define没有指定数据类型而const指定类型;②const用起来更灵活(《C Primer Plus》书中有相关介绍,以后简称“CPP书”)。
3、变量名:字母和数字组成,第一个字符必须是字母,下划线“_”被看成字母,但避免第一个字符使用下划线;书中的外部名与内部名的字符数目31或6开始没有理解,可以搜索“外部名作用域”了解相关知识,不同版本规定也不同。
4、数据类型只有一小节内容,这里可以扩展阅读CPP书中第三章“数据和C”,新的标准还增加了不少数据类型关键字,如下图1所示,这里先不展开学习了。
图1.CPP书中对比表
5、常量:识记字符常量后缀、转义字符序列,字符括在单引号中,字符串括在双引号中;枚举常量概念容易理解,但还接触过相关应用。
6、声明:容易理解,难点在于声明变量的数据类型,“如果不是自动变量,则只能进行一次初始化操作”一开始没理解,这句话是指如外部变量只进行一次初始化操作,自动变量指函数局部变量,只在函数调用时存在。
7、运算符:算数运算符、关系运算符、逻辑运算符、赋值运算符、按位运算符、移位运算符等,可以参考附录A参考手册A.7或CPP书第五章,这节主要难点在运算符的优先级及结合性如下图2所示表,一元运算符的优先级仅次于括号类,结合性从右至左包括一元运算符、条件运算符、赋值运算符三类。
8、一元元算符和二元运算符:运算符操作的对象只有一个称为一元运算符,两个称为二元运算符,好像还可以称为一目、二目运算符。一元运算符比相应二元运算符优先级高。后面还有个三元运算符“:”。
9、类型转换概念很好理解,但具体转换规则还挺多的,需要在不断实践中总结。
10、知识点内容太多,准备一天拿下看来还是想当然了,今天主要理解相关概念,明天针对性多练习,进一步理解。
图2.运算符的优先级与结合性
加油!
坚持!