1.寄存器是中央处理器内的组成部分。可用来暂存指令、数据和地址。
内存通过寄存器将数据 传输给CPU,速度快,所以可以将频繁使用的变量定义为寄存器变量,这个变量的存取速度比普通变量快。
在C语言中,register变量存放在寄存器中而不是内存中,所以不能用取其地址。
在C++中,register变量并不存放在寄存器中而是存在内存中。
static的作用:
1.修饰全局变量,使得全局变量作用域仅限于本文件中,其他文件中不能通过extern来应用被static修饰的全局变量。未经初始化的静态全局变量会被程序自动初始化为0。
2.修饰局部变量,作用域仅限于本函数中,外部函数不可引用,生命周期直到程序结束,在全局数据区分配内存,保留上一次函数调用结束的值。
3.修饰函数,使得函数不能被外部文件引用。
变量的命名规则:
1.直当可拼读,便于记忆
2.命名长度不要过长
3.由多个词组成时,每个词第一个字母大写
4.多个文件间共同使用的全局变量或函数要加范围限定符
5.避免命名中出现数字编号
sizeof 是关键字不是函数。
int i = 0;
sizeof(i) = sizeof i,
1.在计算变量所占空间大小时,括号可以省略 。
2.sizeof()中运算病不起作用。
sizeof(int) *p
计算int类型所占字节大小,然后乘以p
int *p = NULL
sizeof(p) = 4;
sizeof(*p) = 4;
int a[100];
sizeof(a) = 4 * 100 = 400
sizeof(a[100]) = 4
sizeof(&a) = 4
sizeof(&a[0]) = 4
int b[100];
void fun(int b[100])
{
sizeof(b);
}
b[100]形参相当于int *b
所以sizeof(b) = 4
int i = -20;
unsigned j = 10
int先向unsigned转化,i转化为unsigned类型保留最高位1,所以i+j是一个很大的数字
unsigned i;
for(i = 9;i >= 0;i--)
{
printf("%u",i);
}
死循环,因为unsigned是无符号数,永远大于等于0;
float变量与零值比较
>= EPSINON && <= EPSINON
内存通过寄存器将数据 传输给CPU,速度快,所以可以将频繁使用的变量定义为寄存器变量,这个变量的存取速度比普通变量快。
在C语言中,register变量存放在寄存器中而不是内存中,所以不能用取其地址。
在C++中,register变量并不存放在寄存器中而是存在内存中。
static的作用:
1.修饰全局变量,使得全局变量作用域仅限于本文件中,其他文件中不能通过extern来应用被static修饰的全局变量。未经初始化的静态全局变量会被程序自动初始化为0。
2.修饰局部变量,作用域仅限于本函数中,外部函数不可引用,生命周期直到程序结束,在全局数据区分配内存,保留上一次函数调用结束的值。
3.修饰函数,使得函数不能被外部文件引用。
变量的命名规则:
1.直当可拼读,便于记忆
2.命名长度不要过长
3.由多个词组成时,每个词第一个字母大写
4.多个文件间共同使用的全局变量或函数要加范围限定符
5.避免命名中出现数字编号
sizeof 是关键字不是函数。
int i = 0;
sizeof(i) = sizeof i,
1.在计算变量所占空间大小时,括号可以省略 。
2.sizeof()中运算病不起作用。
sizeof(int) *p
计算int类型所占字节大小,然后乘以p
int *p = NULL
sizeof(p) = 4;
sizeof(*p) = 4;
int a[100];
sizeof(a) = 4 * 100 = 400
sizeof(a[100]) = 4
sizeof(&a) = 4
sizeof(&a[0]) = 4
int b[100];
void fun(int b[100])
{
sizeof(b);
}
b[100]形参相当于int *b
所以sizeof(b) = 4
int i = -20;
unsigned j = 10
int先向unsigned转化,i转化为unsigned类型保留最高位1,所以i+j是一个很大的数字
unsigned i;
for(i = 9;i >= 0;i--)
{
printf("%u",i);
}
死循环,因为unsigned是无符号数,永远大于等于0;
float变量与零值比较
>= EPSINON && <= EPSINON