预习的十个问题

一、什么是变量,什么是常量

 

答:

1、变量:

其值在其作用域内可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储空间。变量依据其定义的类型,分为不同的类型,如整型变量,字符型变量,浮点型变量,指针型变量,变量的值发生改变意味着它可以被覆盖、被写入、被赋值。每一个变量必须要有一个名字和它所在内存空间绑定。

2、 常量:

其值不会发生改变的量称为常量,它们可以和数据类型结合起来分类,如整型常量、浮点型常量、字符型常量。常量可以不经过定义和初始化,直接引用,常量还分为直接常量和符号常量。符号常量,如宏定义的“#define PI 3.14”。

 

二、主调函数,被调函数,形参,实参,区别

 

答:

如果在函数A执行的过程中调用函数B。则A是主调函数,B是被调函数

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

 

举个例子:int max(int a,int b){…}

这里的a,b为形参,接下来调用max()

 

void main(){

int c,int d

max(c,d)

}

这里的c,d为实参,main()为主调函数,max()为被调函数

 

三、局部变量和全局变量的区别

 

答:

1、 局部变量:在函数内作定义说明,其作用域仅限于函数内部,离开该函数后再使用是非法的

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

注:如果同一源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量被“屏蔽”。

 

四、补码

 

答:负数的补码符号位不变,各位取反再加1。

在计算机系统中,数值一律用补码来表示(储存)。原因是使用补码,可以将符号位和其他位统一处理。

 

五、定义与声明的区别

 

答:

定义:编译器创建一个对象,位这个对象分配一块内存并给它取上一个变量名,变量名和这块内存一旦匹配,就不会改变,这块内存的位置也不会改变。一个变量在一定的区域内(如函数内、全局等)只能被定义一次,如果被定义多次,编译器会提示你重复定义同一个变量。

声明:1、告诉编译器,这个名字已经匹配到一块内存上了。声明可以出现多次。2、告诉编译器,这个名字已经被预订了,别的地方再也不能用它来作为变量名。

 

 

六、static的作用

 

答:

1、 在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束后才释放。

2、 static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其他文件中访问,即便是extern外部声明也不可以。

3、 static修饰一个函数,则这个函数只能在本文件中调用,不能被其他文件调用。static修饰的局部变量存放在全局数据区的静态变量区,初始化的时候自动初始化为0;

(1)   不像被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组。如果不像让这个数组在函数调用结束释放可以使用static修饰。

(2)   考虑到数据的安全性(当程想要使用全局变量的时候应该先考虑使用static)

 

七、辨别const在其修辞的复杂类型下修辞的对象

 

答:

将类型去掉;

 

 

八、使用寄存器变量时应注意的问题

 

答:

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

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

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

 

 

九、volatile的作用

 

答:

1、 告诉编译器不要进行优化;

 

2、告诉系统始终从内存中取变量的地址,而不是从缓存或寄存器中取变量的值(加volatile和不加volatile系统都会产生缓存)

 

十、typedef和#define的区别

 

答:

#define 是文字替换

typedef是别名

 

举个列子:

typedef int* pINT;

#define pINT2 int*

 

pINT a,b; //定义了2个指针变量

pINT2 a,b; //定义了一个指针变量,一个整型

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值