指针数组*a[]和指向指针的指针**a有什么关系?
指针数组*a[]和指向指针的指针**a有什么关系?分别都是什么意思?他们一样吗?亲,详细解释哦...
指针数组*a[]和指向指针的指针**a有什么关系?
分别都是什么意思?他们一样吗?
亲,详细解释哦 展开
分别都是什么意思?他们一样吗?
亲,详细解释哦 展开
展开全部
这类问题要几句话说清楚太难,给你画个图吧。
首先说明,你把任何变量所存储的内容看作“值”,无论是数值还是字符或是其他,无非是值类型不同(参考C#中的概念)。图中我标绿色的都是“值”。
其次,凡是与指针相关的一定要注意容器的类型与被存储的地址类型要保持一致。
s1到s4是四个字符型数组,用于存储字符串,不考虑结束符都是100个元素,他们各自有一个首地址,该地址类型是char *;a是个char *数组,因此其每个元素的类型都是一个指针(char *),也就是多个char *类型的指针变量组成数组。由于类型一致,因此可以分别赋值s1到s4的首地址。
其实就是先是简单的一个char * 指针指向一个字符数组,这个可以理解吧,然后进一步将多个指针组合在一起称为数组a,仅此而已。
指针指向某个地址,称为间接寻址,而指针的指针看图就很明确,就是间接的间接寻址。无论是指向一个字符还是一个数组。看图应该无需我过多说明了。
有疑问再追问。
更正:上图两个char p 漏了星号,应为char * p,Excel文件已删不高兴重新编辑了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询