定义指针变量
char *pArry 【4】= {“djasidasld”
“sndklasnklas”
“asdnklasndla”
“dfkmsd”
}
char *(*p) = &pArray
请问这个char *(*p)【4】是什么意思?char(*p)【4】不久已经是定义一个指向数组的指针了吗,为什么还要加一个*, 本帖最后由 KevinHu 于 2020-5-12 11:09 编辑
你的第一行
char *pArry 【4】= {
为什么要用中文的中括号? 好像是 pArray 已经是指针的缘故 把指向数组指针的地址赋值给指向数组指针的指针 因为pArry类型是 char*,所以指向它的指针也必须是 char*
char *(*p)实际上是 (char*) (*p)的简写 , 其中(*p) 表示数组指针,指向长度为4的数组, (char*)表示该指针指向的对象的类型是 char* 加*表示定义指针啊!即(*p)【4】的指针。赋给pArray的地址。就是说代表pArray的地址。它的值就是pArray。你前面定义的pArray的值也是一个地址,这个地址的值是那个字符串的地址。 本帖最后由 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]