如何解释这行C代码中的星号?

时间:2012-03-30 03:25:38

标签: c

  *(int *)CV = (int)0;

我正在查看C代码,无法理解这行代码。你能解释一下并解释它的作用吗?

4 个答案:

答案 0 :(得分:7)

它将CV强制转换为指向int的指针,取消引用指针,并指定指向int的值0

Here's a demo.此外,(int)0在这种情况下与0相同,因此可以更改以使事情变得更简单。

答案 1 :(得分:3)

首先将CV转换为int指针,然后将其指向的整数设置为零。

0的投射实际上并不是必需的。

您经常会在以下情况下看到它:

void setIntWithVoidPtr (void *p) {
    *((int*)p) = 42;
}

答案 2 :(得分:1)

他们将变量CV转换为类型int *(指向int的指针),然后使用外部*取消引用它,并为其赋值{ {1}}已投放到0

答案 3 :(得分:1)

似乎CVvoid *,它首先被投放到int *,然后取消引用,并且int中的值设置为0. (int)0 ,似乎没必要。