一个C语言简单程序的问题void func(int a , int b){a 3b 4}void main(){int x 12,y 56func(x,y
一个C语言简单程序的问题 void func(int a , int b) { a = 3; b = 4; }
void main() { int x = 12,y = 56; func(x,y); printf(" x = %d , y = %d\n",x,y); } 这个输出结果是 x = 12,y = 56。不明白为什么会这样 还有引用是怎么回事
[解决办法] func函数是不能改变x和y的值的,楼主看下形参和实参相关的知识吧 [解决办法]
C/C++ code
void func(int *a , int *b){*a = 3;*b = 4;}void main(){int x = 12,y = 56;func(&x,&y);printf(" x = %d , y = %d\n",x,y);} [解决办法] 上面这样就可以了,把地址传过去 [解决办法] void func(int *a , int *b) { *a = 3; *b = 4; }
void main() { int x = 12,y = 56; func(&x,&y); printf(" x = %d , y = %d\n",x,y); } [解决办法] 形参实参的问题,新手一般都会犯的错误 [解决办法] 传值不能改变参数的值,传引用或指针可以 void func(int &a , int &b) { a = 3; b = 4; } void main() { int x = 12,y = 56; func(x,y); printf(" x = %d , y = %d\n",x,y); }
[解决办法] 传值和传址的区别。 [解决办法]
[解决办法]
[解决办法] 你需要改变他的值的时候,要用传址,不需要改变他的值,只是用他的值的话,就用传值 [解决办法] 调用函数func(x,y),只是把x,y的值拷贝一份赋值给形参a,b,程序只是改变了a,b的值,x,y,的值并没有改变; 就好比: int x = 3; int a = x; a = 4; 这时x的值还是3.