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

求大神解释一下代码

#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语言入门
  • 参与学习       927002    人
  • 解答问题       21533    个

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

进入课程

求大神解释一下代码

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号