C++初探索
前言
C++ 和 C 的区别主要在8个方面:
- 输入和输出
- 引用
- inline函数
- 函数默认值
- 函数重载
- 模板函数
- new 和 delete
- namespace
我仅对印象不深的地方做了总结。
目录
一、引用初探索
1.引用的定义与区别
定义:类型& 引用变量的名称 = 变量名称
'&' 不是取地址符吗,怎么又成为引用了呢?下面将常见的 '&' 做一个区分:
C中的 '&'- c = a && b; //此处 && 是 逻辑与
- c = a & b; //此处的 & 是 按位与
- int *p = &a; //此处的 & 是 取地址符
复制代码- int &x = a; //此处的 & 是 引用
- void fun(int &a); //此处的 & 也是引用
复制代码 疑问:int &fun()这个是函数的引用吗?
回答:不是函数的引用,表示函数的返回值是一个引用。
2.引用的要求
- ①当定义引用时,必须初始化
- //正确用法:
- int a = 10;
- int &x = a;
复制代码 - ② 没有引用的引用(没有二级引用)
- //错误用法:
- int &x = a;
- int &&y = x;
复制代码 - ③ 没有空引用
3.引用与指针的区别
引用指针必须初始化可以不初始化不可为空可以为空不能更换目标可以更换目标没有二级引用存在二级指针<ul>1、引用必须初始化,而指针可以不初始化- int &s; //error:引用没用初始化
- int *p; //right:指针不强制初始化
复制代码 2、引用不可以为空,指针可以为空
[code]int &s = NULL; //error:引用不可以为空,右值必须是已经定义过的变量名int *p = NULL; //right:可以定义空指针。int fun_p(int *p){ if(p != NULL) //因为指针可以为空,所以在输出前需要判断。 { cout |