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

-6 c

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

小智 12

*在一个变量声明并不意味着同样的事情作为*变量已被宣布之后.在声明中,声明*变量的状态是指向您声明的类型的值的指针.在你的例子中,

int *v;
Run Code Online (Sandbox Code Playgroud)

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

int **v;
Run Code Online (Sandbox Code Playgroud)

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

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

*v
Run Code Online (Sandbox Code Playgroud)

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

声明之间int* vint *v声明之间没有区别,尽管int *v在同一行中声明多个变量时使用更清楚.在

int* v, u
Run Code Online (Sandbox Code Playgroud)

v是指向intwhile 的指针u只是一个int,在编写时可能不清楚该声明

int *v, u
Run Code Online (Sandbox Code Playgroud)

最终会更清楚你的意图(做v一个int指针,u只是一个int).