"int**k"是什么意思?

Bin*_*Sun 3 c pointers pointer-to-pointer

我是C编程语言的初学者.我在书上看到了一个代码:

#include<stdio.h>
int main(){
    int * * k, *a, b=100;

    a = &b;
    k = &a;
    printf("%d\n",* * k);
}
Run Code Online (Sandbox Code Playgroud)

我不知道的意思int * *k.这是整数指针还是值?它会指向什么?它包含什么/存储?这个变量有什么用?我怎么能理解这个表达方式?

msc*_*msc 8

int **k
Run Code Online (Sandbox Code Playgroud)

k是指向int(双指针)的指针,并保存一些其他指针变量的地址.

在你的例子中:

 int  b = 100;   /* 'b' is an int, initialized to value 100 */
 int *a = &b;  /* a is a pointer-to-int*/
 int **k = &a; /* k is a pointer-to-pointer-to-int */
Run Code Online (Sandbox Code Playgroud)

请参阅下图以便更好地理解:

PTR