指针和数组
- 数组的名字就是一个指针常量,指向数组的起始地址。
T a[N]; //a就是一个T类型的数组,它里面的每一个元素都是T类型的。
- a的类型是 T *,但它是一个常量,所以不能对a进行赋值
- 可以用a给一个T *类型的指针赋值,使得被赋值的指针指向数组a[ ]的起始地址。
- a是编译时值就已经确定了的常量,不能对a进行赋值。
作为函数形参时,T *p 和 T p[ ]等价
- $$$$void Func(int * p) {cout << sizeof(p);} $$\Leftrightarrow $$ void Func(int p[ ]) { cout << sizeof(p);} //输出都是4
eg1
eg2:颠倒一个数组
注意:实参a[ ]的值被改变了
“形参是实参的一个拷贝,改变形参不会影响到实参”,但是有个例外:如果形参和实参都是一个数组的话,那么如果形参数组在函数执行过程中发生了改变,则实参数组也会改变。
课程地址:http://www.icourse163.org/learn/PKU-1001553023?tid=1001995004
2017.06.11