是那种形式?
在int *ptr
中,*
是指针声明符,它与ptr
结合表明ptr
是一个指针变量,而int
指定了这个指针指向的数据类型为int
类型。
所以是*
和ptr
结合使得ptr
成为指针变量,同时结合int
表明其指向的是int
类型的数据。
可以这样理解:*ptr
整体表示一个指针,int
修饰这个指针指向的内容是整数类型。所以关键在于*
对ptr
的修饰作用以及int
对其指向内容类型的限定。它们共同协作确定了ptr
的性质是指向整数的指针。
那int **pptr怎么理解?
理解为*pptr是一个指针的整体, 而int *是这个指针指向的类型.
在int **pptr
中:
-
*
与pptr
结合表示pptr
是一个指针,而这里有两个*
,第一个*
与pptr
结合后,*pptr
本身又是一个指针,第二个*
表明这个指针指向的元素还是一个指针(并且该指针指向的实际内容是int
类型的数据),所以pptr
被定义为一个指向指针的指针,且最终指向的那个指针指向的是int
类型的数据。 -
例如,可以用于表示一个二维数组的行指针等场景。外层的指针
pptr
可以通过解引用一次(*pptr
)得到内层的指针,再解引用一次(**pptr
)得到实际的int
类型数据。