数据类型十问

1.什么是变量?
  (1)其值在其作用域内可以改变的量成为变量。
  (2)一个变量应该有一个名字,在内存中占据一定的存储空间。
  (3)变量在使用前必须要定义,每个变量都有自己的地址。
  
2.变量名和变量值区别是什么?
   变量名是在变量的声明的时候,该名字就和内存中一块地址绑定在一起了。可以通过变量名直接找到对应的内存区域,也可以通过地址找到其内存区域。
   变量的值是变量所对应的内存区域内存放的二进制序列。变量的值不会因为变量的类型发生了改变而改变,当变量被转换为对应类型时,内存区域的二进制序列以该类型的形式翻译出来。这也是强制类型转换能够成立的原因。

3.局部变量和全局变量的区别是什么?

   局部变量也称为内部变量,局部变量是在函数内作定义说明的,其作用域仅限于函数内,离开该函数后使用这种变量是非法的。

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

4.void两种意思?

void可以表示没有数据(没有结果、没有形式参数),也可以表示某种任意类型的数据(如又与指针结合,用void*标记)。void表示空类型,void* 表示任意数据的指针类型,程序如要使用void*类型数据,应该将它强制地转换成某种具体的指针类型。




5.什么是声明?什么是定义?他们之间的区别是什么?
   声明是引入标识符和标识符的类型(类型可以是整形,函数,浮点型等)。声明也可理解为是让编译器知道有这么个标识符,方便以后引用。
定义实际是实例代(或实现)标识符。可为标识符分配存储空间,还可为标识符指定初始值。   
定义可以代替声明,因为在定义的时候我们也指定了标识符和类型。但所有标识符只能有一次定义,而声明可以有多次。

6.static和extern的区别?
   全局变量是不显示用static修饰的全局变量,全局变量默认是有外部链接性的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。全局静态变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。

7.const的作用?

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

(2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。

(3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。

(4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。 

(5) 为函数重载提供了一个参考。 

(6) 可以节省空间,避免不必要的内存分配。

(7) 提高了效率。 

8.如何使用auto?

这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。

9.typedef

(1)常规变量类型定义      

(2)指针类型定义              

(3)数组类型定义            

(4)函数地址说明

(5)函数声明

(6)函数指针

10.枚举与#define的区别?

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

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

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值