数据类型预习


1.什么是常量、什么是变量,他们之间的区别是什么?

常量:其值不会发生改变的量,称为常量。它们可以和数据类型接合起来分类。比如:整型常量,浮点型常量,字符常量等等,常量是可以不经过定义和初始化,而直接引用的。

常量分类:常量又分为:直接常量和符号常量。

直接常量又叫做:字面常量。如12,0,4.6,’a’,”abcd”

符号常量:如宏定义的:#define PI 3.14

特点:常量的值在其作用域内不会发生改变,也不能再被赋值。其在出现时就被当作一个立即数来使用。也就是说,只能被访问,被读,而不能被写,被赋值。 

变量:其值在其作用域内可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储空间。变量在使用前必须要定义。每个变量都有自己的地址。

变量分类:变量依据其定义的类型,分为不同类型,如:整型变量,字符型变量,浮点型变量,指针型变量等等。

特点:变量其值可以发生改变,意味着它可以被覆盖,被写入,被赋值。每个变量必须要有一个名字和它所在内存空间绑定。

 

 

2.变量名和变量值区别是什么?

变量名是在变量的声明的时候,该名字就和内存中一块地址绑定在一起了。可以通过变量名直接找到对应的内存区域,也可以通过地址找到其内存区域。

变量的值是变量所对应的内存区域内存放的二进制序列。变量的值不会因为变量的类型发生了改变而改变,当变量被转换为对应类型时,内存区域的二进制序列以该类型的形式翻译出来。这也是强制类型转换能够成立的原因。

 

 

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

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

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

 

 

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

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

 

 

5.什么是声明?什么是定义?他们之间的区别是什么?

声明就是指给除了当前变量或者函数,或者类什么的名字,不给其中的内容,就是先告诉你有这样一个什么类型的变量或者函数,但是这个变量或者函数的具体信息却是不知道的。

定义直接告诉你了所有的东西,这个变量是什么,这个函数是什么功能,这个类里面包含了什么东西,是很具体的说明。

声明一般都是对函数或者类来说的,声明在前,定义在后。

 

 

6.static和extern

static是静态存储类型,属于局部变量,只能用于同一个函数内,在其他函数内使用是错误的。extern是外部存储类型,属于全局变量,可以用于从他定义开始的后续所有函数内。

 

 

7.const

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

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

2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。
3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。
4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。
5) 为函数重载提供了一个参考。
6) 可以节省空间,避免不必要的内存分配。
7) 提高了效率。 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。

 

 

8.typedef

1)常规变量类型定义      

2)指针类型定义              

3)数组类型定义            

4)函数地址说明

5)函数声明

6)函数指针

 

 

9.枚举与#define的区别

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

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

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

 

10.联合体

 1)联合体是一个结构;

  2)它的所有成员相对于基地址的偏移量都为0;

 3)此结构空间要大到足够容纳最"宽"的成员;

 4)其对齐方式要适合其中所有的成员;









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值