首先感谢@CFBDSIR2149的笔记整理,救我狗命(她的博客https://www.cnblogs.com/myqD-blogs/)

以下是我参考各种资料课件(主要是mooc)等,只针对我自己的注意点,并且可能有错误的地方,也欢迎指出(如果有人看的话)

看到啥写啥,没有条理,甚至有我个人的日常生活记录

 

1.引用必须初始化,且初始化后,它就一直引用该变量,不会再引用别的变量了。引用只能引用变量,不能引用表达式和常量。

2.不能通过常引用来修改其值,错误用例

int n,m;
const int * p = & n;
* p = 5; //编译出错
n = 4; //ok
p = &m;

 

 

3.实例:(在引用后两个变量相当于等价了,你变我也变)

 

 

void swap( int & a, int & b)
{
int tmp;
tmp = a; a = b; b = tmp;
}
int n1, n2;
swap(n1,n2) ; // n1,n2的值被交换

4.引用函数可以做返回值

int n = 4;
int & SetValue() { return n; }
int main() 
{
SetValue() = 40;
cout << n;
return 0;
} //输出: 40

5.(用new 实现动态内存分配)P = new T;

T是任意类型名,P是类型为T * 的指针。
动态分配出一片大小为 sizeof(T)字节的内存空间,并且将该
内存空间的起始地址赋值给P。
int * pn;
pn = new int; 
* pn = 5;

6.P = new T[N],数组,分配N*sizeof(T)的动态内存空间,其他同上

7.用完new后要delet,一片空间只能被delet一次,数组和非数组分别是

delete [ ] p;
delete p;

8.表达式“new int”的返回值类型为int *

9.内联函数机制是为了节省调用函数的时间开销,就是把整个代码放进去。

10.一个或多个函数,名字相同,然而参数个数或参数类型不相同,这叫做函数的重载。

编译器根据调用语句的中的实参的个数和类型判断应该调用哪个函数
11.定义函数的时候可以让最右边的连续若干个参数有缺省值void func( int x1, int x2 = 2, int x3 = 3)
void func( int x1, int x2 = 2, int x3 = 3){ }

func(10 ) ; //等效于 func(10,2,3) func(10,8) ; //等效于 func(10,8,3) func(10, , 8) ; //不行,只能最右边的连续若干个参数

**,第一周的终于看完了,我直接死了好吧

加上用cm灌汤兔模板画的家里oc