内容:
1.C语言的编译过程
2.进制转换的贪心算法
3.类型
4.变量
5.课堂小问题
1.C语言的编译过程
源文件.c >>预编译>> 预编译文件.i >>编译>> 目标文件.obj >>链接>> 可执行文件.exe
2.进制转换的贪心算法
130转换2进制
最大化满足128,则在27 的位置上填1,然后看减去之后的数,也就是3,最大化满足多少。
3满足21 ,该位置填1并减去该值,剩下的数为1。 1在满足20
总结:贪心算法 加 大于等于该位次
3.类型
3.1整型 char short int long long long
3.2浮点型 float double long double
3.3布尔型 bool
3.4无类型 void
关于bool类型的问题
总结:bool只有对错值,没有具体数值:
规则:真为非零(如:1,52,-5,-2等),表现为1 , 假的数值为0,表现为0,
(左图)bool值进行减法,按规则办事,不管计算的结果如何,表现出来的只有 真(1)/假(0)。 (右图)加法,具体数值只是一个过程,结果的体现只有 真 / 假。
上述规则的体现
4.变量
凡是函数之外,全局变量
凡是函数之内,局部变量 >> 块内变量
4.1
宏常量 与 常变量
#define MAX = 10
4.1.1 宏 >> 宏替换(发生在预编译),就是把代码中的MAX换成10 (这里没有; 若加了分号,在替换的时候会带上分号 MAX>>10; )
>> 宏没有类型之说,因为只是替换
>> 宏并不开辟空间
const int max = 10 ;
4.1.2常变量
>>常变量有类型,并且开辟空间
5.课堂小问题
5.1 作用域的概念
作用域是C++程序中的一段区域,一般用正反两个花括号来界定它的范围。
在同一个作用域范围内,一个命名只能唯一关联到一个实体,这个实体可以是变量,函数,类型,模版等。也就是说,在同一作用域范围内,不同的实体必须对应不同的命名,绝对不允许出现两个不同的实体对应同一个相同的命名的情况。
一个命名可以和不同作用域中的不同实体相对应。也就是说,对于同一个命名,在不同的作用域中可以重复使用。
5.2宏常量与字面常量的区别
宏常量在预编译就替换了,然后编译、链接。
字面常量是变成了代码的一部分,以立即数的形式。(立即数是指在立即寻址方式中给出的数)
5.3局部有个变量a,全局也有个变量a,如何在局部应用全局的
::a 就表示全局的
优先级的小案例
c *= a + b; >> c = (a+b) * c;
因为,逗号的优先级最低 *=的优先级第二低
所以基本上别的运算符优先级都在它们之上