2 joyce1995 Joyce1995 于 2016.01.30 10:22 提问

这道简单编程题里,为啥5050就是出不来呢?

图片说明

4个回答

loushuai
loushuai   2016.01.30 10:46
已采纳

最后一行打印的是sum的地址

Joyce1995
Joyce1995 回复versoon: 所以sum加了&后,输出的其实是5050的十六进制吗?
接近 2 年之前 回复
versoon
versoon 回复versoon:不要使用goto,这是一个很危险的语句,一般while,do while 都可以替代goto
接近 2 年之前 回复
versoon
versoon 回复Joyce1995: &sum是取sum的地址,地址是16进制的,上面被你强制转换成了int输出。还有建议不要使用
接近 2 年之前 回复
u014359108
u014359108 回复Joyce1995: 这里&表示指针
接近 2 年之前 回复
Joyce1995
Joyce1995 回复xyz347:好形象的比喻,瞬间懂了,谢谢啦!
接近 2 年之前 回复
xyz347
xyz347 地址和值的关系。你可以把内存看做很多格子,地址是格子的编号,值是格子放的东西。
接近 2 年之前 回复
Joyce1995
Joyce1995 对啦!为啥&sum就会影响答案呢(⊙_⊙)?
接近 2 年之前 回复
sinat_33883653
sinat_33883653   2016.01.30 12:24

最后的一行那个&去掉,那输出是地址

u013518448
u013518448   2016.01.30 17:55

那个&是取地址符,是在scanf()语句中扫描用户输入内容用的,关于printf()语句加上了会输出地址,而不是内容了

Joyce1995
Joyce1995 学习到了,O(∩_∩)O谢谢!
接近 2 年之前 回复
lrgdongnan
lrgdongnan   2016.01.30 10:32

你可以把100改为一个比较小的数,然后单步调试看一下。

Joyce1995
Joyce1995 感谢回答!是&的问题。
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!