我从一个解释排序的网站得到了这个。但我无法理解*(int*)x
。如何在C程序中这样使用时读取变量x?它指向x的指针还是不同?任何帮助表示赞赏。谢谢!
答案 0 :(得分:3)
如果你将它拆开,你可以到达那里,首先:
(int*)x
这会将x
转换为int*
,指向int
的指针。我假设在这种情况下,x
是int
,因此x
中的数字被解释为指针。
下一步:
*(int*)x
*
取消引用指针,在这种情况下是刚刚铸造的int
。结果是int
。
简而言之:将int
解释为指针并获取它指向的值。
答案 1 :(得分:0)
首先将x
转换为整数指针,然后取消引用它。
答案 2 :(得分:0)
您可以像这样考虑C中的*
:
int
)表示指针 x
),表示解除引用 所以:
(int*)x
是指向int
*y
是来自y
答案 3 :(得分:0)
与其他解释相同的答案。 试着解释一下 - int * ptr =(int *)x; int y = * ptr;