我从一个解释排序的网站得到这个。但我无法理解*(int*)x
。在 C 程序中这样使用时如何读取变量 x?它是指向 x 指针的指针还是不同?任何帮助表示赞赏。谢谢!
问问题
94 次
4 回答
3
如果你把它分开,你可以到达那里,首先:
(int*)x
这将转换x
为int*
, 指向 的指针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 回答