1.什么是变量?
其值在其作用域内可以改变的量称为变量。
2.什么是变量的值,它有何特点?
变量的值是变量所对应的内存区域内存放的二进制序列,变量的值不会因为变量的类型发生了改变而改变,当变量被转换为对应类型时,内存区域的二进制序列以该类型的形式翻译出来。
3.什么是定义?
定义就是创建一个对象,为这个对象分配一块内存并给它取上一个名字。一个变量或对象在一定的区域内只能被定义一次。
4.什么是声明?
声明第一重含义:告诉编译器,这个名字已经匹配到一块内存上了。
第二重含义:告诉编译器,别的地方不能用这个名字作为变量名或对象名。
声明可以出现多次。
5.static的用法是什么?
(1)修饰局部变量,使局部变量的生命周期持续到整个程序结束。
(2)修饰全局变量,改变全局变量的作用域的范围,由原来的整个工程可见变为本源文件可见。
6.extern的用法是什么?
extern可以修饰变量和函数,表示该变量或者函数在其他地方被定义(本源文件或其他源文件内),在这里声明使用它。
7.const int *p和int * const p有什么区别?
const int *p:p所指向的空间里的值不变
int * const p:指针变量p里的值不变,p指向的地址不变,但p指向的空间里的值可变。
8.在使用寄存器变量时应注意的三点是什么?
(1)寄存器变量是单个变量,变量长度应该小于等于寄存器长度。
(2)不能对寄存器变量使用取地址符“&”,因为该变量没有内存地址。
(3)尽量在大量频繁操作时使用寄存器变量,且声明的变量个数应该尽量少。
9.volatile的作用是什么?
使编译器每次对变量进行访问时去内存里读取。
10.联合体
联合变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲去旧值。