一道函数测试题!void func(int *x){ x=(int *)malloc(sizeof(int));*x=12;}int main(){ int x=10;func(&x);printf("%d",x)}x输出为什么是10?当所malloc那行注释后x的输出为12?
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/30 03:15:40
![一道函数测试题!void func(int *x){ x=(int *)malloc(sizeof(int));*x=12;}int main(){ int x=10;func(&x);printf(](/uploads/image/z/12624017-41-7.jpg?t=%E4%B8%80%E9%81%93%E5%87%BD%E6%95%B0%E6%B5%8B%E8%AF%95%E9%A2%98%21void+func%28int+%2Ax%29%7B+x%3D%28int+%2A%29malloc%28sizeof%28int%29%29%3B%2Ax%3D12%3B%7Dint+main%28%29%7B+int+x%3D10%3Bfunc%28%26x%29%3Bprintf%28%22%25d%22%2Cx%29%7Dx%E8%BE%93%E5%87%BA%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%AF10%3F%E5%BD%93%E6%89%80malloc%E9%82%A3%E8%A1%8C%E6%B3%A8%E9%87%8A%E5%90%8Ex%E7%9A%84%E8%BE%93%E5%87%BA%E4%B8%BA12%3F)
xՑN@_I4-i϶A&PPhHOUD`
-O3wlA1.\{̹Hj
ٺӂc{>6
Jzd7Xޤ FȶZ#ඁf>c8Rf}7
一道函数测试题!void func(int *x){ x=(int *)malloc(sizeof(int));*x=12;}int main(){ int x=10;func(&x);printf("%d",x)}x输出为什么是10?当所malloc那行注释后x的输出为12?
一道函数测试题!
void func(int *x)
{ x=(int *)malloc(sizeof(int));
*x=12;
}
int main()
{ int x=10;
func(&x);
printf("%d",x)
}
x输出为什么是10?当所malloc那行注释后x的输出为12?
一道函数测试题!void func(int *x){ x=(int *)malloc(sizeof(int));*x=12;}int main(){ int x=10;func(&x);printf("%d",x)}x输出为什么是10?当所malloc那行注释后x的输出为12?
func传入的是x的地址没错,但是在函数内部又重新开辟了新内存,在新的内存上数据赋值为12,不会影响原先x的值,故仍旧是10