为什么函数里的变量地址不会变
每次调用时,里面的变量地址是不变的!!void main(){
int geti();
geti(1);
geti(2);
geti(3);
geti(4);
geti(5);
geti(6);
}
int geti(int a){
int i = a;
printf("%d\n", &i);
return i;
}
输出结果都是一样的,怎么办啊 ???
输出结果一样咋了啊 qiuyouzhi 发表于 2020-2-20 12:57
???
输出结果一样咋了啊
因为函数调用时栈存储,调用完成后不是会删除所有的局部变量和函数地址么。地址应该会变的啊 输出结果当然一样了,当你定义一个函数时,系统会给这个函数一块内存空间。就是你得出的那个地址。
你每次调用完函数,内存空间都会释放,释放之后再用这块内存空间接收你后来传入的值。所以你得出的地址当然是一样的。
页:
[1]