船长的箱子 发表于 2017-6-30 22:51:56

为什么这个程序的输出值是88

# include<stdio.h>
void g(int*pArr, int len)
{
        pArr=88;

}
void f(void)
{int a={1,2,3,4,5};
g(a,5);
printf("%d\n",a);
}
int main(void)
{
f();
return 0;
}

函数运行的顺序是什么

ba21 发表于 2017-6-30 23:07:12

本帖最后由 ba21 于 2017-6-30 23:21 编辑


ButcherRabbit 发表于 2017-6-30 23:20:11

内存大楼里,先居住g这个门牌号,再居住f这个门牌号,。,最后主程序main调用f门牌号内存的东西,
而f门牌号的东西又调用g门牌号的内存东西

karlyes 发表于 2017-7-2 23:44:58

就像一楼一样,已经很详细,f()函数里已调用了g()函数,通过指针已把数组中a的值改为了88,当然打印出来的就是88!
页: [1]
查看完整版本: 为什么这个程序的输出值是88