Juniorboy 发表于 2020-5-12 07:39:05

定义指针变量

char *pArry 【4】= {
“djasidasld”
“sndklasnklas”
“asdnklasndla”
“dfkmsd”

}



char *(*p) = &pArray


请问这个char *(*p)【4】是什么意思?char(*p)【4】不久已经是定义一个指向数组的指针了吗,为什么还要加一个*,

KevinHu 发表于 2020-5-12 07:45:22

本帖最后由 KevinHu 于 2020-5-12 11:09 编辑

你的第一行
char *pArry 【4】= {
为什么要用中文的中括号?

liuzhengyuan 发表于 2020-5-12 08:04:32

好像是 pArray 已经是指针的缘故

Snopy 发表于 2020-5-12 09:13:27

把指向数组指针的地址赋值给指向数组指针的指针

sunrise085 发表于 2020-5-12 09:40:40

因为pArry类型是 char*,所以指向它的指针也必须是 char*
char *(*p)实际上是 (char*) (*p)的简写 , 其中(*p) 表示数组指针,指向长度为4的数组, (char*)表示该指针指向的对象的类型是 char*

405794672 发表于 2020-5-12 10:47:02

加*表示定义指针啊!即(*p)【4】的指针。赋给pArray的地址。就是说代表pArray的地址。它的值就是pArray。你前面定义的pArray的值也是一个地址,这个地址的值是那个字符串的地址。

4goodworld 发表于 2020-5-12 15:16:34

本帖最后由 4goodworld 于 2020-5-12 15:17 编辑

char *pArry= {
“djasidasld”
“sndklasnklas”
“asdnklasndla”
“dfkmsd”
}
char *pArry 这个你要分几步来看 char* pArry    首先,pArry,你能不能看懂,是一个数组,有4个成员,那4个成员分别是什么类型呢?char* 类型,对于char* 类型,一般是字符串的居多,通常情况下,一个数组里面有指针,我们喜欢叫它指针数组,它就是一个数组
如果看明白
继续下一个
char *(*p) = &pArray
了解下 char *(*p)这个啥意思首先这是一个 数组指针;对于一个数组指针,char*(*p)p是指向一个有4个成员的数组,这个数组的成员类型呢?就是char* 类型 ,它就是一个指针
最后,我们来做一个类比
int a 和 int* p ,请问int类型的指针与int类型的变量如何建立联系,是不是 p=&a 有没有问题
继续看
char*pArry 数组
char *(*p)      数组指针
一个char* 类型 的数组 与char* 类型的数组指针如何建立联系?是不是 p=&pArry

页: [1]
查看完整版本: 定义指针变量