笔试整理(一)

一、宏替换命令

1、用预处理指令交换两个参数的值
#define SWAP(a,b) (a)=(a)+(b);(b)=(a)-(b);(a)=(a)-(b)
2、输入两个参数,输出一个较小的
#define MIN(A,B) ((A)<(B)?(A):(B))
3、表明一年有多少秒
#define SECOND_PER_YEAR (60*60*24*365)UL
//加UL(无符号长整型)为了防止溢出

二、关键字static的作用

1、修饰局部变量时,延长了局部变量的生命周期,让静态局部变量出了作用域依然存在,到程序结束,生命周期才结束,但是作用域不变,仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束。

2、修饰全局变量时,限制了全局变量的作用域,这个全局变量只能在本源文件内使用,不能在其他源文件内使用。

3、修饰函数时,限制了函数的作用域,该函数只能在本文件内被调用或访问,不能跨文件访问,其他文件中可以定义同名的函数,不会发生冲突。

三、关键字const的作用

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

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

3、节省时间和提高效率,编译器通常不为普通的const常量分配空间,而是将他们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率很高。

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

四、关键字volatile的含义

        一个定义为volatile的变量是说这变量可能会被意想不到的改变,因此,编译器就不会去假设这个变量的值了。精确的说就是,优化器在利用这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。比如:并行设备硬件寄存器,多线程应用中被几个任务共享的变量。

五、指针和引用的区别

引用是在C++中引入的,他们之间的区别有:

1、非空区别:指针可以为空,而引用不能为空。

2、可修改区别:如果指针不是常指针,那么就可以修改它的指向,而引用不能。

3、初始化区别:指针定义时可以不初始化,而引用定义时必须初始化。

六、结构体struct和类class的区别

        在C语言中的struct只能对数据进行聚合,而C++中的class把数据以及对数据处理的方法同时聚合为一体,增加了内聚性。此外,class拥有可再生和可抽象性,实现了代码的复用,集中体现在派生的功能和多态的功能。同时class也比struct具备更好的封装性,体现在三种访问权限上。在C++中的struct和class的结构基本一致,只是struct的默认权限为public,而class的默认权限为private。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式小白i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值