包含数据的我写了下面的代码什么类型的指针
int num = 3;
int *ptr = #
cout << *ptr << " " << ptr << endl;
,得到了下面的输出。
3 0x7fff5fbff43c
我想知道这是什么类型的数据。
0x7fff5fbff43c
是
一个。有符号浮点数据
b。带符号整数数据
c。无符号浮点数据
d。无符号整数数据
e。有符号字符数据
包含数据的我写了下面的代码什么类型的指针
int num = 3;
int *ptr = #
cout << *ptr << " " << ptr << endl;
,得到了下面的输出。
3 0x7fff5fbff43c
我想知道这是什么类型的数据。
0x7fff5fbff43c
是
一个。有符号浮点数据
b。带符号整数数据
c。无符号浮点数据
d。无符号整数数据
e。有符号字符数据
它们都不是这些 - 它是一个指向整数的指针,它与任何描述中包含“数据”一词的类型不同。
0x7fff5fbff43c
只是一个数字解释作为一个无符号整数数字打印出来的base-16。
所以我们可以放心地假设它的选项d? – itsaboutcode
@itsaboutcode尽管将指针指定为无符号十六进制整数是为人类读者直观显示它们的最常见方法,但从技术角度讲,指针*是无符号整数是不正确的。正确的答案是“这是一个用十六进制符号表示的无符号整数形式的指针”,所以从某种意义上说,“d”是最不正确的选择(但它仍然是不正确的)。 – dasblinkenlight
数据类型为int *
。这不是你提到的任何事情。你也许可以将它投射到其中一个;但是,您是否可以做到这一点是未定义的,并且可能因平台和编译器而异。
对于显示,ostream的<<
将转换为字符串。该字符串不直接对应于类型; operator<<
调用ostream
函数来传递字符数据,可以是单独的字符,字符串或其组合。
它表示一个内存地址,而不是一个变量。所以它是无类型的。然而,你可以给它一个“间接类型”,这意味着这个指针指向的内存确实有一个类型(所以你可以指向int,字符,结构等)。
阅读indirection,这是一个有趣的概念。 f。
f。以上都不是 – tmpearce