数据类型中的问题

1.局部变量和全局变量的区别

局部变量是在函数内作定义说明的,其作用域仅限在函数内,在复合语句中也可定义变量,其作用域只在复合语句范围内。

全局变量实在函数外部定义的变量,不属于哪一个函数,属于一个源程序文件,其作用域是整个源程序。

2.用static修饰局部变量和全局变量,分别有什么后果?

用static修饰局部变量时,其生命周期以及存储空间发生变化,但其作用域并没有变化,作用域仍仅限于该语句块;

但用static修饰全局变量时,改变了其作用域的范围,由原来整个工程可见变成本源文件可见。

3.const

const关键字的作用主要有以下几点:

可以定义const常量,具有不可变性。

便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。
可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。
可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。 
为函数重载提供了一个参考。 

4.const int *p和int *const p的区别

const int *p是指指针p指向的空间里的值不变;

int *const p是指指针变量p里的值不变,也就是说p不能再指向其他地址,但是p所指向的空间里的值可变。

5.为什么CPU不直接读取内存里的数据,而是要借助寄存器?

在计算机中,CPU的运算速度最快,而相对应的存储器速度却慢得多,访问速度最快的寄存器,由于其体积大,不适合大容量

的使用,所以只能二者结合的方式来提高效率。

6.使用寄存器时,应该注意什么?

待声明为寄存器变量类型应该CPU寄存器所能接受的类型,意味着寄存器变量是单个变量,变量长度应个该小于等于寄存器长度

不能对寄存器变量使用取地址符,因为该变量没有内存地址

尽量在大量频繁操作时使用寄存器变量,且声明的变量个数应该尽量少

7. 联合体和结构体的区别

  在结构中各成员有各自的内存空间,一个结构变量的总长度是各成员长度之和

  在联合中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度(同样遵循对齐)

8. 枚举和#define宏的区别

  #define 宏常量实在预编译阶段进行简单替换,枚举常量则是在编译的时候确定其值

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

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

9. 基本内置类型有哪些?

基本内置类型:①整型②实型③构造类型④指针类型⑤枚举类型⑥void类型

10.定义和声明的区别

  定义就是创建一个对象,为这个对象分配一块内存并给它取上一个名字。一个变量或对象在一定的区域内只能

  被定义一次。

  声明是告诉编译器,这个名字已经匹配到一跨爱内存上了,声明可以多次出现






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值