首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个C语言简单程序的有关问题

2012-04-24 
一个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);
}

[解决办法]
传值和传址的区别。
[解决办法]
探讨

传值不能改变参数的值,传引用或指针可以
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);
}

C语言……

[解决办法]
你需要改变他的值的时候,要用传址,不需要改变他的值,只是用他的值的话,就用传值
[解决办法]
调用函数func(x,y),只是把x,y的值拷贝一份赋值给形参a,b,程序只是改变了a,b的值,x,y,的值并没有改变;
就好比:
int x = 3;
int a = x;
a = 4;
这时x的值还是3.

[解决办法]
没有返回值当然不会改变main主函数的变量值
[解决办法]
c语言在传参的时候,其实传递的是实参的副本。
也就是说,你传递进去的是你原来实参的值,但是这个值存储在另一个你不知道位于什么位置的内存中,所以你对那个不知道什么位置的空间做任何操作,原来的实参都不会改变。
如果你想改变原来的实参,你就要把实参的地址传进去,这样虽然实参的地址是保存在不知道什么位置的内存中,但是你可以根据实参的地址找到你的实参,然后修改实参就可以了

热点排行
Bad Request.