2.2 变量
①变量的值是变量所对应的内存区域内存放的二进制序列,变量的值不会因为变量的类型发生改变而改变,
当变量转换为对应类型时,内存区域的二进制以该类型的形式编译出来。
int a = 97;
char ch2 = (char)a;
char ch1 = ‘a’;
将整型变量a强制类型转换成字符型
a变量里的值没有变,a里面的值还是97的二进制,类型变成了char,97的二进制变成char型,表现出来就是字符a.
② 局部变量:只作用于函数内,离开该函数后再使用是非法的
全局变量:不属于哪个函数,属于一个源程序文件,作用于整个源程序
2.4 计算机如何存储符号
把基本数据的类型的最高位腾出来,用来存储符号位
最高位如果是1,表明这个数是负数,其值为除去最高位以外的剩余位的值添上这个“-”号
最高位如果是0,表明这个数是正数,其值为除去最高位以外的剩余位的值
char类型默认情况下是有符号的,表示的值的范围为-128~127,超出这个范围的值会产生溢出
并清除负数的补码怎么表示
2.5声明与定义
定义:创建一个对象,并为这个对象分配一块内存命名
【注意】一个变量或对象在一定的区域内只能被定义一次
声明:两重含义
一、 告诉编译器某个名字已经匹配到一块内存上了。声明可以多次出现
二、告诉编译器某个名字已经被占用了,其他的地方不能再用这个名字来作为变量名或对象名
声明与定义
定义:创建一个对象,并为这个对象分配一块内存命名
【注意】一个变量或对象在一定的区域内只能被定义一次
2.6
static 与 extern
static: 指该变量空间独立于函数中的auto变量或者栈变量,static变量空间在内存中的静态区分配。
一、修饰局部变量
如果用static进行修饰,该变量便存放在静态数据区,其生命周期直持续到整个程序执行结束为止【注意】虽然用static对局部变量进行修饰后,其生命周期和存储空间发生了变化,但是作用域并没有改变
在用static修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次。
定义:创建一个对象,并为这个对象分配一块内存命名
【注意】一个变量或对象在一定的区域内只能被定义一次
2.6
static 与 extern
static: 指该变量空间独立于函数中的auto变量或者栈变量,static变量空间在内存中的静态区分配。
一、修饰局部变量
如果用static进行修饰,该变量便存放在静态数据区,其生命周期直持续到整个程序执行结束为止【注意】虽然用static对局部变量进行修饰后,其生命周期和存储空间发生了变化,但是作用域并没有改变
在用static修饰局部变量后,该变量只在初次运行时进行初始化工作,且只进行一次。
2.7 const铁布衫
只要变量前面用const修饰,该变量里的数据可以被访问,但是不能被修改
怎样看const修辞谁
在语句中去掉类型,看const修辞谁,谁的值就不能再修改
2.8 auto
auto的出现意味着当前变量的作用域为当前函数或代码段的局部变量,意味着当前变量会在内存栈上进行分配