#include <stdio.h>
void test (int x){
x=1024;
printf("test函数内部 %d/n",x);
}
int main()
{int x = 1;
printf("调用test前 x=%d\n",x);
test(x);
printf("调用test后 x=%d\n",x);
}
你期待什么结果?
出错信息是什么?
你的分号“;” 要用英文的分号[;], 而不是中文的分号【;】
注意符号不要用中文的,我修改了一遍
#include <stdio.h>
void test(int x){
x=1024;
printf("test函数内部 %d\n",x);
}
int main()
{
int x = 1;
printf("调用test前 x=%d\n",x);
test(x);//test并不能改变x的值,形参的变化是不会改变实参的值,这个只是值传递,外面的x还是保持原来的值
printf("调用test后 x=%d\n",x);
return 0;
}
如果是想改变x的值,可以改成传指针
#include <stdio.h>
void test(int *x){//改成指针就可以修改x的值
*x=1024;
printf("test函数内部 %d\n",*x);
}
int main()
{
int x = 1;
printf("调用test前 x=%d\n",x);
test(&x);
printf("调用test后 x=%d\n",x);
return 0;
}