数据类型相关知识

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

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

全局变量也称为外部变量,它是在函数外部定义的变量,它不属于哪一个函数,它属于一个源程序文件,其作用域是整个源程序;需注意:在同一个源文件中,局部变量和全局变量同名,则在局部变量的作用范围内,全局变量被 “屏蔽” ,不起作用。

2. 关于局部变量的作用域,有哪些注意点

1)主函数中定义的变量也只能在主函数中使用,不能在其他函数中使用。同时,主函数中也不能使用其他函数中定义的变量。因为主函数也是一个函数,它与其他函数是平行关系。这一点是与其他语言不同的,应予以注意。

2)形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。

3)允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。

4)在复合语句中也可定义变量,其作用域只在复合语句范围内。

3. int、double、short、float、char、long 等类型变量名各占用多少字节

int:4字节      double:8字节      short:2字节      float:4字节      char:1字节      long:4字节

4. 简要介绍关键字static

1)可以修饰局部变量、全局变量、函数;

2)修饰局部变量作用:使函数生命周期延长到程序结束后再释放;

3)修饰全局变量作用:使全局变量只能在本文件访问,不能被其他文件访问;

4)修饰函数作用:使函数只能在本文件内被调用,不能在其他文件内调用。

5. 简要介绍关键字extern

1)可以修饰外部变量或外部函数;

2)用来声明某个变量或函数在本文件之外的其他文件定义的,要使用时到其他文件找。

6. 简要介绍关键字const

1)不仅可以修饰基本类型,还可以用来修饰构造类型和指针及各种复杂类型结合体;

2)const修饰一个变量,此变量被声明为只读变量,即不能通过这个变量名来修改变量的值,但是变量指向的空间里的值是可变的;

3)const的主要作用:防止程序运行过程中对函数实参的值做修改,提高安全性。

7. 简要介绍关键字register

1)只能修饰局部变量,不能修饰全局变量和函数;

2)当一个变量是register变量时,不能通过 & 来获取变量地址,因为它保存在 CPU 寄存器中;

3)register 是一个寄存器变量,它的作用:请求编译器将变量尽可能的保存在 CPU 寄存器中,提高执行效率,省去了 CPU 从内存中读取数据的时间;

4)register 一般修饰经常被访问的变量。

8. 简要介绍关键字typedef

1)typedef 作用:为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。

2)在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。

9.  枚举与 #define 宏的区别

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

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

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

10. 联合与结构的区别

在结构中各成员有各自的内存空间,一个结构变量的总长度是各成员长度之和;而在联合中,各成员共享一段内存空间,一个联合变量的长度等于各成员中最长的长度(同样遵循对齐)。这里所谓的共享不是指把多个成员同时装入一个联合变量内,而是指该联合变量可被赋予任一成员值,但每次只能赋一种值, 赋入新值则冲去旧值。

 



 


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值