一道函数测试题!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/12/19 00:22:38
一道函数测试题!voidfunc(int*x){x=(int*)malloc(sizeof(int));*x=12;}intmain(){intx=10;func(&x);printf("%d",x)
一道函数测试题!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