c语言深度剖析读书笔记

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值