永发信息网

c++问题帮我解释一下

答案:3  悬赏:70  手机版
解决时间 2021-04-28 04:05
  • 提问者网友:相思似海深
  • 2021-04-27 08:52

以下是书上的一题 :分析程序存在的错误。

答案:寄存器变量不能用“&”,运算符,因此要将寄存器变量改为非寄存器变量,

即定义为:int x;

void main()

{

register int x;

x=100;

printf("%d\n",&x);

}

//此处&是什么意思?再帮我分析一下上面答案是什么意思?我在程序前面加了#include <stdio.h>后试了一下程序加不加register都是输出1244996,不知为什么?

好像加不加register也没变化?

最佳答案
  • 五星知识达人网友:未来江山和你
  • 2021-04-27 10:07

在C++里面,&是引用调用,不是C语言中的scanf存址。


你现在打印的应该是x的地址,把&去掉就可以正常打印了。

全部回答
  • 1楼网友:轻熟杀无赦
  • 2021-04-27 10:56

因为你打印出来的是存方X的地址。所以不是X的值。&这表示取地址。是16进制的。

  • 2楼网友:野味小生
  • 2021-04-27 10:35

加了&后 输出的就是寄存器的地址了 而不是它保存的值了……

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯