标题:局部变量传参的疑惑
取消只看楼主
taking
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2021-10-22
结帖率:0
已结贴  问题点数:20 回复次数:1 
局部变量传参的疑惑
程序代码:
void initArr(int i[3]) {
    printf(" %d ", i[0]);// 打印结果10
    i[0] = 100;
    printf(" %d ", i[0]);// 打印结果100
}
void test2() {
    int i[3] = { 10,20,30 };
    initArr(i);
    printf(" %d ", i[0]);// 打印结果100
}

为什么我这个主调函数test2()中的局部变量i, 传递给initArr,在initArr中修改i的内容,主调函数也会受到影响?
initArr中的I不该是独立栈空间新开辟的局部变量吗?照说不是只有地址传递用指针接收才能达到这效果吗?
学多级指针的时候老师说,传参相当与赋值.被调函数会自己开辟空间存放变量.
从语法角度说,如果传I就是传递地址,那么被调函数定义形参的时候不应该需要一个指针去间接引用吗?
还是说就单纯的把这个情况看成是语法糖?
搜索更多相关主题的帖子: 结果 传递 局部变量 指针 函数 
2021-10-22 19:00
taking
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2021-10-22
得分:0 
Thanks,quite clear,good good study,day day up!
2021-10-22 19:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-507263-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.229916 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved