黑马程序员技术交流社区

标题: 当数组名作为行数参数时,形参和实参之间是地址传递 [打印本页]

作者: JamesLucky    时间: 2015-6-22 13:56
标题: 当数组名作为行数参数时,形参和实参之间是地址传递
以下面的程序为例:

#include<stdio.h>
void test(int arr[2]){
        printf("arr = %p\n",arr);
        arr[0]=100;
}       
        int main(){
        int a[2] = {3,4};
        printf("a = %p\n",a);
        test(a);
        printf("a[0] = %d\n",a[0]);
        return 0;
}

       \\运行结果:a = 0028FF40
                        arr = 0028FF40
                        a[0] = 100
         分析: 此时arr没有被分配存储空间,而是arr和数组名a指向同一个内存空间,即a通过函数test()将地址传给了arr。这说明用数组名作为函数参数时,传递的是地址。
作者: 白0702    时间: 2015-6-22 15:35
楼主总结的很详细,学习了。
作者: 李言    时间: 2015-6-22 21:14
很好哦!学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2