数据类型和运算符,表达式中遇到的问题

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

局部变量保存在栈,全局变量保存在数据区;初始化全局变量为0,局部变量为垃圾值;重名时用局部变量,全局变量是程序结束才释放,局部变量是函数结束就释放。

2.数据类型的判断

先确定它是一个变量,再确定它保存什么类型的值,保存什么类型的值它就是什么变量;

先确定它是一个指针变量,再确定它保存什么类型的地址,保存什么类型的地址它就是什么指针变量;

例如:int *a 是整型指针变量 

      int *(*a) 整型指针的指针变量

3.数据类型及大小

int = 4 字节

char = 1字节

short = 2 字节

 long = 4 字节

float = 4 字节

double = 8 字节

4.为什么指针的长度是固定的?

指针保存的是地址,地址的长度由操作系统决定,在32位操作系统中指针的长度都是4字节

5.变量的特点?

占用内存的存储空间,变量的作用域,变量的存储区域

6.怎么区分定义和声明?

定义:int i;

声明:extern int i;

7.static关键字作用

1. 修饰局部变量,延长变量生命周期,直至程序运行完释放。

2. 修饰全局变量,这个全局变量只能在本文件访问。

3. 修饰函数,只能在本文件中调用,不能在其他文件中调用。

4. 数据保存在静态数据区。


8.register关键字作用

请求编译器尽可能地将变量保存在cpu内部寄存器中,从而省去了从内存中抓取数据的时间,提高程序运行效率。一般将频繁被访问的变量用regeist修饰,如循环变量。

说明:

1.只能修饰局部变量,不能修饰函数和全局变量。

2.不能用&获取变量地址

3.register所修饰的变量一定是cpu所能接受的数据类型。


9.i++和++i注意事项

i++先使用,后自加。

++i先自加,自加完毕后再做相应的运算。

++i被替换成变量名;

i++被替换成数值。

10.typedef作用

给变量重命名。

作用:

1. 提高代码的可读性;

2.提高代码的移植性;











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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值