指针和数组

  • 数组的名字就是一个指针常量,指向数组的起始地址。
  • 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

results matching ""

    No results matching ""