为了账号安全,请及时绑定邮箱和手机立即绑定

求大神解释一下代码

#include

int multidouble(int x) { return x*2; } int main() { int x=10; printf("x=%d\n",multidouble); return 0; }为什么输出结果是419840,求大神解释一下这题代码

正在回答

4 回答

有个地方错了,是输入x=20

0 回复 有任何疑惑可以回复我~
#1

毛哈哈 提问者

非常感谢!
2016-09-28 回复 有任何疑惑可以回复我~

你输出的是multidouble 这个字符串,因为前面x=%d是int类型,所以进行了字符的转换。想要输入x=20,必须调用multidouble()这个函数,即是printf("x=%d\n",multidouble(x));

1 回复 有任何疑惑可以回复我~

int main(){printf("x=%d\n","multidouble(x)");return 0;}

函数调用的格式是:  函数名(参数);  

你调用的是int multidouble(int x){}; 你自己的自创函数,那么在调用的时候请看它有没有形参(int x),如果有,那么在调用的时候就调用它的实参(x  这里要注意的是x在题目中 是被赋予了一个实际的数值 x=10 那么这个x就是实参),

所以最终的代码应该是

int main(){printf("x=%d\n","multidouble(x)");return 0;}

2 回复 有任何疑惑可以回复我~

你后面的multidouble 要加括号才是调用函数,否则就是将这一串字符的asic码值输出了

0 回复 有任何疑惑可以回复我~
#1

毛哈哈 提问者

为什么加了括号结果还是419840呢?
2016-06-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C语言入门
  • 参与学习       926207    人
  • 解答问题       20797    个

C语言入门视频教程,带你进入编程世界的必修课-C语言

进入课程

求大神解释一下代码

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信