一、1.定义和声明的区别:
定义创建了对象并为对象分配了内存;而声明只是创建了对象,并没有为对象分配内存。
一、2.寄存器:
cpu<------->寄存器<------->内存
寄存器相当于皇上身边的太监,只是起到中转站的作用。
一、3.register修饰符的注意点:
register变量必须是一个单个的值,其长度应小于等于整形的长度,而且register变量可能不存放在内存中,所以不能用取地址运算符“&”来获取register变量的地址。(“&”只能用于取内存上的地址)
一、4.static:
<1>修饰局部变量(在函数内部创建的变量):被static修饰后的变量因为总是存放在内存的静态区,为静态变量,所以出局部后局部变量并不销毁,但是,它的作用域没变,还是只作用于局部。
<2>修饰全局变量:被static修饰后,全局变量只能在当前源文件内部使用,其他文件即使使用extern声明也没有办法使用,准确说作用域是从定义域开始,到文件结尾结束,在定义之前的代码也不能使用,要使用,在前面加extern。
<3>修饰函数:此处“static”的含义不是指存储方式,而是指函数的作用域仅局限于本文件。(又称内部函数)
一、4.sizeof关键字:
sizeof是32个关键字的一个,并不是函数;sizeof在计算变量所占空间大小时,括号可以省略;在计算类型大小时,不能省略。
一、5.switch,case语句:
case后面只能是整形或字符型的常量或常量表达式
switch(n),n只是决定入口,如果没有break,会从case n进入依次执行。
一、6.return关键字:
return语句不可返回指向“栈内存”的“指针”,因为该内存在函数体结束时被销毁。
一、7.struct关键字(结构体):
空结构体用sizeof求出的大小为1.
class与struct的区别:struct的成员默认情况下属性是public,而class成员是private。
一、8.union关键字(共用体):
union维护足够多的空间来置放多个数据成员的“一种”,而不是为每一个数据成员配置空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。
联合的大小最小也是最大成员的字节。
一、9.typedef关键字:
给一个已经存在的数据类型(**注意:是类型不是变量**)取一个别名,而非定义一个新的数据类型。