全部问题 > 当前问题

为什么写成下面的形式就输出不出来正确结果?只是新设了一个变量啊?

void fun(int a, int b, long *c)

{

long d;

d=(a/10)*100+(a%10)+(b/10)*1000+(b%10)*10;

c=&d;

}


Nope 2016-3-22 20:25:01

共 13 个回答

最佳答案

对面 2016-3-22 20:34:49

void fun(int a, int b, long *c)

{

long d;

*d=(a/10)*100+(a%10)+(b/10)*1000+(b%10)*10;//这应该加个*

c=&d;把&删除。试试

}


1 2016-3-22 20:37:34

因为在这个函数里只是按值传递 你只是把形参*c的地址改变了 主函数没有变化

1 2016-3-22 20:44:54

回复 对面:定义d的时候是long d 而不是指正,你下面这个*d不会报错吗

对面 2016-3-22 20:45:29

T‘’T嘿嘿

Nope 2016-3-22 20:46:12

回复 1:嗯嗯 蟹蟹,刚刚一时糊涂了

Nope 2016-3-22 20:47:43

回复 对面:刚刚顺手把你这个点成标准答案了...不过谢谢你解答了

对面 2016-3-22 20:54:50

回复 Nope:不会只是得写成这样,*c=d

所以说要你多试试嘛, 都是为了提高  多试试就好了

对面 2016-3-22 20:57:00

回复 1:所以说要把d前的*删除啊,而c是指针,所以要加个*才能赋值

对面 2016-3-22 20:59:44

也是3月份考试T--T   一起提高,一起提高~~~

Nope 2016-3-22 21:01:13

回复 对面:哈哈是的 学校还没教这个提前看视频还真有点累 也祝你顺利通过!

对面 2016-3-22 21:04:47

回复 Nope:嗯嗯  你也是~~~~~~

不过这个只要按照视频来还是很容易的,,,T“”T


1 2016-3-22 21:15:17

回复 对面:兄弟 你明明说的是 “该加个*” 现在又要删掉*

对面 2016-3-22 21:17:01

回复 1:所以说试试,刚才没运行程序,多运行几次就知道错哪了的,,,

问题来自: 编程题真题