如图,求助大佬,为什么输出的值是90
c语言吧
全部回复
仅看楼主
level 12
鲨神L 楼主
2021年12月29日 08点12分 1
level 7
值传递,函数内改变的是局部变量x的值,把x定义为全局变量或者改变函数类型然后返回x的值
2021年12月29日 09点12分 2
好的,谢谢
2021年12月29日 12点12分
level 5
改成地址传递,或者把输出放到sum函数里
2021年12月29日 09点12分 3
好的多谢
2021年12月29日 12点12分
level 5
用int sum,把sum作为返回值,主函数用x=sum(x)赋值
2021年12月29日 10点12分 4
level 12
学了指针就明白了
2021年12月29日 10点12分 5
level 1
学学指针吧
2021年12月29日 10点12分 6
好的[小乖]
2021年12月29日 12点12分
level 3
你这用的值传递,sum函数里的x的内存地址跟你在main里定义的x内存地址不一样,前面学的知识有疑问的话,基本上都可以画内存图来理解。
2021年12月29日 10点12分 7
好的,多谢
2021年12月29日 12点12分
level 1
Sum函数return 个x 就行了吧
2021年12月29日 10点12分 8
level 1
i=90,90<5吗?不小于,直接输出90
2021年12月29日 10点12分 9
不会c别卖弄误导别人,楼上全是对的,自己看看别人学学吧
2021年12月29日 10点12分
啊这
2021年12月29日 11点12分
level 1
函数里的x和外面的x不是同一个东西
2021年12月29日 10点12分 10
level 1
我反而想问楼主觉得输出啥
2021年12月29日 10点12分 11
level 5
2楼说的对
2021年12月29日 10点12分 13
level 1
只改变形参的值,实参值不变,用指针形参就行
2021年12月29日 10点12分 14
level 10
能出个啥,x值都没变
2021年12月29日 10点12分 15
level 1
学指针了吗?没学就去看看。你传过去的是值,而不是x的地址,sum函数中计算的x的地址和main函数中x的地址不一样,是两个不一样的x,去看指针就明白了。另外可以把sum函数类型改为int,在里面加return sum;然后在main函数中加x=sum(x);
2021年12月29日 10点12分 17
茅塞顿开[花心]
2021年12月29日 12点12分
1 2 尾页