0

我从一个解释排序的网站得到这个。但我无法理解*(int*)x。在 C 程序中这样使用时如何读取变量 x?它是指向 x 指针的指针还是不同?任何帮助表示赞赏。谢谢!

4

4 回答 4

3

如果你把它分开,你可以到达那里,首先:

(int*)x

这将转换xint*, 指向 的指针int。我假设在这种情况下,x是一个int,所以数字x被解释为一个指针。

在下一步中:

*(int*)x

*取消引用一个指针,在这种情况下是刚刚转换的int. 结果是一个int.

简而言之:将 an 解释int为指针并获取它指向的值。

于 2012-05-28T07:51:23.307 回答
0

x首先转换为整数指针,然后取消引用它。

于 2012-05-28T07:50:13.183 回答
0

*你可以在 C 中这样思考:

  • 对于类型(例如int),它表示指针
  • 带有值(例如,x)意味着取消引用

所以:

  • (int*)x是一个指向int
  • *y是来自指向的内存地址的值y
于 2012-05-28T07:52:38.743 回答
0

与其他人的答案相同,但解释不同。试着解释一下 - int* ptr = (int*)x; int y = *ptr;

于 2012-05-28T07:53:52.563 回答