第二章数据类型

变量和常量的区别?

变量也就是说它所代表的空间里的数据是可以修改的,同样该变量的地址处的数据也是可以修改的;常量的话其值在其作用域内不会发生改变。

局部变量和全局变量用法和作用域上的不同?

局部变量也称内部变量,局部变量是在函数内作定义说明的,其作用域仅限于函数内;一般只有在函数内经过说明的全局变量才能使用;如果同一源文件中,外部变量和局部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”,则它不起作用。

static用法的不同?

static可以修饰变量;当修饰局部变量时,该局部变量从原来的栈区变成静态数据区,其生命周期一直持续到整个程序执行结束为止,但是要注意的是该局部变量的生命周期和存储空间发生了变化,但其作用域并没有发生改变;当修饰全局变量时,它既可以在本源文件中被访问,也可以在同一个工程的其他源文件中被访问(只需用extern进行声明即可);当修饰函数时,情况与修饰全局变量大同小异,就是改变了函数的作用域。

extern的使用?

extern是指当前变量或函数不是在本源文件内声明的,它是外部变量或外部函数,当我们在本文件里试图引用一个外部声明的全局变量或函数时,可以在其前面加上extern,extern可以修饰变量和函数,表示该变量或者函数在其他地方被定义。

const的使用?

变量前面用const来修辞,就意外着该变量里的数据可以被访问,不能被修改,const不仅可以用来修饰基本类型,它还常用来修饰一些构造类型和指针及其参合体。

auto的使用?

auto的出现意味着当前变量的作用域为当前函数或代码段的局部变量,意味着当前变量会在内存栈上进行分配。

register的使用?

如果一个变量被register来修饰,就意外着该变量会作为一个寄存器变量,让该变量的访问速度达到最快,寄存器变量是指一个变量直接引用寄存器,也就是对变量名的操作的结果是直接对寄存器进行访问。

volatile的使用?

它修饰变量表示该变量的值很容易由于外部因素发生改变,为了防止在类似的情况下编译器玩省事,可以将这些变量声明为volatile,这样,不管它的值有没有变化,每次对其值进行访问,都会从内存里,寄存器里读取,从而保证数据的一致,做到表里不一。

typedef的使用?

typedef目的一般有两个:一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。另外typedef与define的不同之处在于define只是简单的字符串替换而typedef则是为一个类型起新名字。

猜你喜欢

转载自blog.csdn.net/qq_42267245/article/details/82950884