Excaliburer`s Zone

It was challenging, but not risky.

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  C++中函数的形参如果为数组的话,那么进行实参传递时,实参实际上换转化成指针。参考下面的例子:

#include<iostream>
using namespace std;

void fun(int arr[])
{
    arr[0] = 9;

}
int main()
{
    int a[] = {1,2,3};
    int *b = new int[1];
    *b = 2;
    fun(a);
    cout<<a[0]<<endl;
    fun(b);
    cout<<b[0]<<endl;
}

运行结果为:

通过上面的结果可知,

1.数组a的本质就可以看成是一种指向数组首地址的指针。

2.在实参传递的过程中,传给fun函数的实际上是一个指针,这个指针存储的地址与a的首地址相同,所以改变这个指针指向内容的值,数组a的值也会发生改变。但改变这个指针本身,并不会对a产生影响。

posted on 2018-04-12 16:26  Excaliburer  阅读(1038)  评论(0编辑  收藏  举报