c++初识(2)

引用
一个 人可以有不同的名字,可以有不用的外号。(给变量起一个别名,指向一个实体不给它开辟空间)
类型&
int & ra = a ra是a的一个别名
const int a=10;
const int& ra=a;
const int& r1=10
(临时变量不能被改变)
交换:
swap(int&a,int &b) (可做参数)
可把引用当成指针来用
int &add(int&a,int&b) (可做返回值)
但是返回值的生命周期至少>函数的生命周期
传值、引用的比较
值很大的时候,传值的效率很低
引用不会有拷贝的操作
区别:
语法上:引用不开辟空间,和实体指向同一块空间,是实体的别名。
底层实现:引用用指针实现,本质上是指针

宏可以定义常量也可以定义函数
内联函数
类似一个宏函数。
inline:替换,把函数展开
但是如果代码特别长的话,就不会展开,而是调用
内联函数不能把定义和声明分开。(会导致链接过程中符号找不到)
可以用内联函数代替宏, 本质上是函数,可以进行 语法检查
auto
typeid()
auto p = &a;
auto *p=&a;
这两个一样的
auto p=a;
auto &p=a;
这两个不一样
auto可以确定一行的类型,但是一行多个类型必须相同
其实是根据第一个参数的类型确定的
nulptr
c++中只表示空指针,
在c中,NULL不仅可以看做是空指针,还可以看作是0

猜你喜欢

转载自blog.csdn.net/www_zxf_csdn123/article/details/89639385