使用单个deference运算符和double dereference运算符对变量有什么区别?

时间:2016-08-01 18:04:58

标签: c

我对指针有一个基本的想法。 int *v;int **v;之间有什么区别,int* v;int *v;之间有什么区别请告诉我。

1 个答案:

答案 0 :(得分:12)

变量声明中的*与声明变量后的*并不相同。在声明中,*表示声明的变量是指向您声明的类型值的指针。在您的示例中,

int *v;

是指向int值的指针的声明,而

int **v;

是指向指向int值的指针的声明。

但是,稍后在声明后的代码中,您可以调用

*v

取消引用该指针,并获取存储在指针所指向的内存位置的值。

声明中int* vint *v之间没有区别,但在同一行中声明多个变量时使用int *v更为明确。在

int* v, u

v是指向int的指针,而u只是int,在撰写时可能无法从该声明中清楚

int *v, u

最终会更明确地表达您的意图(v int指针和uint}。