C语言关键字总结
2016-03-28 21:34
134 查看
C语言标准定义了32个关键字。总结一下最近学习的比较重要的关键字。
1、auto关键字
声明自动变量,在缺省情况下。编译器默认所有的变量都是auto的。
2、register关键字
声明寄存器变量,这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问以提高效率。
限制:(1)register变量必须是一个单个的值,并且其长度应小于或等于整形的长度。
(2)不能用"&"来获取register变量的地址。
3、static关键字
声明静态变量,在C语言里面主要有两个作用:修饰变量;修饰函数。
C++对static赋予了第三个作用:定义类的成员变量和函数。
4、sizeof关键字
计算对象所占内存空间的大小。
5、cons关键字
可以修饰只读变量,修饰一般变量,修饰数组,修饰指针。
如何判断:先忽略类型名,看const离那个近,离谁进就修饰谁。
example:
const int *p;
//const 修饰 *p,p是指针,p可变,*p是指针指向的对象不可变。
int const *p ;
//const 修饰*p,p是指针,*p是指针指向的对象,不可变。
int *const p;
//const修饰p,p不可变,p指向的对象可变。
const int* const p;
//前一个const修饰*p,后一个const 修饰p,指针p和p指向的对象都不可变。
6、volatile 关键字
说明变量在程序执行过程中可被隐含的改变。如果const volatile 同时使用,表示此变量只接受外部的修改。
7、struct 关键字
声明结构体变量。
结构体变量的存储大小,是所有分量的存储空间的总和。
结构体的作用:
1、有机的组织了对象的属性。
2、以修改结构体成员变量的方法代替了函数的重新定义。
3、结构体的内存对齐原则可以提高CPU对内存的访问速度(以空间换取时间)。
结构体成员变量的存放规则:
原则1、结构的数据成员,第一个数据成员放在offset为0的位置,以后每个数据程成员存储的起始位置要从该成员的整数倍开始(比如int在32位机占4字节,则要从4的整数倍地址开始存储。)
原则2、结构体的总大小,也就是sizeof的结果,必须是其内部最大成员的整数倍,不足的要补齐。
原则3、结构体作为成员时,结构体成员要从其内部最大元素大小的整数倍地址开始存储。
8、union 关键字
声明联合数据类型。
在union中所有的数据成员共用一个空间,同一时间只存储其中一个数据成员,所有的数据成员具有相同的起始地址。
9、enum 关键字
声明枚举类型
enum 变量类型可以给其中的常量符号赋值,如果不赋值则会从被赋值的那个常量开始一次加1;如果都没有赋值,他们的值从0开始依次递增1.
10、typedef 关键字
用于给数据类型取别名。
以上内容大多比较简单,只是总结下便于更好的学习,写的不好,大神勿喷哈。
1、auto关键字
声明自动变量,在缺省情况下。编译器默认所有的变量都是auto的。
2、register关键字
声明寄存器变量,这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问以提高效率。
限制:(1)register变量必须是一个单个的值,并且其长度应小于或等于整形的长度。
(2)不能用"&"来获取register变量的地址。
3、static关键字
声明静态变量,在C语言里面主要有两个作用:修饰变量;修饰函数。
C++对static赋予了第三个作用:定义类的成员变量和函数。
4、sizeof关键字
计算对象所占内存空间的大小。
5、cons关键字
可以修饰只读变量,修饰一般变量,修饰数组,修饰指针。
如何判断:先忽略类型名,看const离那个近,离谁进就修饰谁。
example:
const int *p;
//const 修饰 *p,p是指针,p可变,*p是指针指向的对象不可变。
int const *p ;
//const 修饰*p,p是指针,*p是指针指向的对象,不可变。
int *const p;
//const修饰p,p不可变,p指向的对象可变。
const int* const p;
//前一个const修饰*p,后一个const 修饰p,指针p和p指向的对象都不可变。
6、volatile 关键字
说明变量在程序执行过程中可被隐含的改变。如果const volatile 同时使用,表示此变量只接受外部的修改。
7、struct 关键字
声明结构体变量。
结构体变量的存储大小,是所有分量的存储空间的总和。
结构体的作用:
1、有机的组织了对象的属性。
2、以修改结构体成员变量的方法代替了函数的重新定义。
3、结构体的内存对齐原则可以提高CPU对内存的访问速度(以空间换取时间)。
结构体成员变量的存放规则:
原则1、结构的数据成员,第一个数据成员放在offset为0的位置,以后每个数据程成员存储的起始位置要从该成员的整数倍开始(比如int在32位机占4字节,则要从4的整数倍地址开始存储。)
原则2、结构体的总大小,也就是sizeof的结果,必须是其内部最大成员的整数倍,不足的要补齐。
原则3、结构体作为成员时,结构体成员要从其内部最大元素大小的整数倍地址开始存储。
8、union 关键字
声明联合数据类型。
在union中所有的数据成员共用一个空间,同一时间只存储其中一个数据成员,所有的数据成员具有相同的起始地址。
9、enum 关键字
声明枚举类型
enum 变量类型可以给其中的常量符号赋值,如果不赋值则会从被赋值的那个常量开始一次加1;如果都没有赋值,他们的值从0开始依次递增1.
10、typedef 关键字
用于给数据类型取别名。
以上内容大多比较简单,只是总结下便于更好的学习,写的不好,大神勿喷哈。
相关文章推荐
- C++ MFC常用函数(转)
- VC++ 获取系统时间、程序运行时间(精确到秒,毫秒)的五种方法
- 第七届蓝桥杯C语言C组-(自己懂的题目)
- 理解C语言——从小菜到大神的晋级之路(15)——完结篇:C编程风格
- 递归求最大最小值算法 分治策略(c语言实现)
- C++作业2
- C++ 设计模式 —— 策略模式(Strategy)
- assert预处理宏总结
- C++中str1::function和bind
- C++作业-2
- c++ 排序集合
- C++ 同步锁
- C++继承、虚继承、虚函数类的大小问题
- 单链表(C语言)基本操作
- C++实验2-项目1标准体重
- c++作业2
- 单链表(C语言)
- c语言:循环队列的实现
- C++Primer第5版读书笔记(第9章)
- C++作业2