C语言学习之关键字

在我们讲解关键字之前,我们先来了解一下声明跟定义的区别

定义:所谓定义就是(编译器)创建了一个对象,并为这一对象分配了内存并且给它取了一个名字,这个名字就是我们经常所说的变量名或者对象名,一个变量或者对象在一定区域内(比如函数内、全局等)只能定义一次

声明:有两重含义

1、告诉编译器,这个名字已经匹配到一块内存了,下面的代码用到的变量或对象在其他地方定义的,声明可以出现多次。

2、告诉编译器,这个名字已经被预订了,别的地方再也不能用它来作为变量名或对象名。

声明和定义的本质区别是:定义创建了对象并且为这个对象分配了内存,而声明则没有分配内存。

 

下面我们开始来看一下关键字

auto:在缺省状态下,编译器默认的所有变量都是auto的。

 

register:这个关键字请求编译器尽可能地将变量存放在CPU的内部寄存器中,而不是通过内存寻址访问以提高效率。

使用register应当注意,register变量必须是能被CPU寄存器所接受的类型,这意味着register变量必须是单个的值,并且长度应小于或等于整型的长度,而且register变量可能不存放在内存中,所以不能用取址运算符&来获取register变量的地址。

 

sizeof:记住,sizeof不是函数

 

switch  case:要注意,case后面只能是整型或字符型的常量表达式。

 return 语句不可返回指向“栈内存”的“指针”因为该内存在函数体结束时会自动销毁。
const为只读变量,具有不可变性,必须在定义的同时初始化,例
const int MAX = 60;  //合法
const int MIN;
MIN = 20;       //非法

 

枚举与#define的区别

1、#define宏量只是在预编译的时候进行简单的替换,而枚举常量则是在编译的时候确定其值。

2、一般在编译器里,可以调试枚举变量,但是不能调试宏常量。

3、枚举可以一次性定义大量相关的常量,而#define宏一次只能定义一个。

 

union关键字:大小端对union类型的数据会有影响。

所谓大端模式,就是数据的高字节存放在低地址中,而数据的低字节则存放在高地址中。

小端模式,则是数据的低字节存放在低地址中,数据的高字节存放在高地址中。


 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值