问题描述
- 麻烦大家给我解决一下这个函数问题,谢谢了
- func (int x)
{
int y=13;
x=x+y;
return x;
}
main()
{
int x=3;
func(x);
printf(""%d""x+x);
}
我想问一下大家为什么输出的不是16,而是6啊
麻烦大家了
解决方案
因为func(x) 这个x=3输出语句是printf(""%d""x+x);而不是printf(""%d""func(x)+x);
解决方案二:
有哪位高手帮忙解决一下问题!!!DataContract 的using引用指令用什么?
解决方案三:
fun(int x)这个函数压根就没使用
解决方案四:
因为func(x) 这个x=3输出语句是printf(""%d""x+x);而不是printf(""%d""fun(x)+x);
解决方案五:
func(int x)传进去的是值传递 不是引用传递 如果是引用传递结果就是 16
解决方案六:
func这个函数的返回值类型没有标出,而且在main函数里func函数的返回值没有被利用,所以main函数里的x依旧是3,结果就是6。建议1:在func函数的实现中添加返回值类型int,2: printf(""%d""func(x)+x);这样输出就是你要的值了。愚见
解决方案七:
不对,如果是 printf(""%d""func(x)+x);结果是 19;printf(""%d""func(x)+func(x));结果是 32
解决方案八:
x是3,两个x自然是6,函数返回你压根没用直接丢了。
解决方案九:
func (int x)
{
int y=13;
x=x+y;
return x;
}
x是形参,调用func(x)时,在func内部 x是副本,改变值不会作用到外面
改成指针就可以了
func (int * x)
{
int y=13;
x=x+y;
return x;
}
int* x t;
t = *x = 3
func(x);
printf(""%d""*x);
输出就是16了
时间: 2024-12-27 18:49:24