复习C++

很多东西长时间没用,写点东西加强下。

0.数组名不是指针

谭浩强的书上说过数组名是数组首元素地址,而指针的值是地址,所以说数组名不是指针。

指针又叫指针变量,指针的值是地址,指针可以修改从而指向其他空间。

而C++中的数组名是不可修改的右值,它就不是个指针,这点记住了!!!

参考:https://www.cnblogs.com/xiehongfeng100/p/4684825.html

 

1.宏替换

#include "iostream"

#define Max( a,b ) (a)>(b)?(a):(b)

using namespace std;
int main() {
	//6>5?6:5+2
	int res = Max(6, 5)+2;
	cout << res <<"  "<<(Max(6,5) )<<"  "<< (Max(6, 5) ) + 2<<  endl;
}

res最后为8,因为define就是简单的替换,所以res = 6>5?6:5+2.

2.参数缺省

void foo( int a, int b=1, int c=2 ){
    cout<<a<<"  "<<b<<"  "<<c<<endl;
}

缺省参数就是声明或者定义函数时为形参指定一个默认值,

对于缺省参数,必须放在函数参数列表的最后面,因为函数传参是从右向左的。

缺省参数不能在函数声明与函数定义中同时出现。

缺省值必须是常量或者全局变量。

参考:https://blog.youkuaiyun.com/zym1348010959/article/details/80657736

函数传参是从右向左的:

https://blog.youkuaiyun.com/weiyayunerfendou/article/details/72805766

https://blog.youkuaiyun.com/zDavid_2018/article/details/82634525

3.双端队列

deque与vector不同,vector把把所有数据保存在一块连续的空间,而deque采用多个连续存储块,并且在一个映射结构中保存这些块及其顺序的跟踪。向deque两端添加或删除元素的开销很小。

4.TRUE,FALSE与true, false, BOOL与bool

FALSE/TRUE是int类型,而false/true是bool类型

BOOL为int型, bool为布尔型

https://www.cnblogs.com/shikamaru/p/5809368.html

5. malloc 与 new返回对象

new操作符内存分配成功时,返回的是对象类型的指针,类型严格与对象匹配,无须进行类型转换,故new是符合类型安全性的操作符。而malloc内存分配成功则是返回void * ,需要通过强制类型转换将void*指针转换成我们需要的类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值