如何定义指针数组和数组指针_数组指针和指针数组详解

如何定义指针数组和数组指针_数组指针和指针数组详解C语言:关于二级指针之指向指针数组的指针的理解和操作一、二级指针的概念二级指针就是指向指针的指针,二级指针中存储的是指针的地址。指向存储指针空间的首地址。二、二级指针之指向指针数组的定义1.首先讲一下什么是指针数组和数组指针:(1)指针数组意思

C语言:关于二级指针之指向指针数组的指针的理解和操作   一、二级指针的概念   二级指针就是指向指针的指针,二级指针中存储的是指针的地址。指向存储指针空间的首地址。   二、二级指针之指向指针数组的定义   1.首先讲一下什么是指针数组和数组指针:   (1)指针数组意思是存储指针的数组,指针数组可以存储多个指针。 (2)数组指针的意思是数组的指针,数组指针指向的是数组,包括一维数组、二维数组、n维数组,数组指针只有一个。   2.指向指针数组的指针   它也是唯一确定的,因为存储指针数组的空间的起始地址是确定的,指向其的指针也是唯一确定的,这里要注意二级指针的类型应与指针数组的类型相同,移动二级指针的步长取决于数据类型,假如是int类型的指针数组,那么其二级指针移动一个步长的大小为4个字节,假如是char类型的数组其二级指针则移动一个步长大小为1个字节。   上述代码定义了一个长度为3的指针数组,移动其二级指针,假如移动一个步长,令q=q+1,此时二级指针指向的是存储指针数组第二个指针的空间的首地址。   三、使用二级指针访问任意数组素,并输出字符   要访问任意的数组素,需要得到指向任意字符的的指针。 例如第二个字符串”fishinger”中的第七个字符’g’: 1.首先要移动二级指针q一个步长,即q+1,等价于&p[1],使其指向指针数组中第二个指针的起始地址,即指针p[1]的起始地址。 2.对q+1使用取值字符’ * ‘ 得到指针数组中第二个指针,即 *(q+1),等价于p[1] 3.对指针 * (q+1)移动6个步长,即 * (q+1)+6,等价于 * (p[1]+6),其指向第七个字符’g’的起始地址(首地址),加6是因为指针指向的是内存中的首地址,数组的内存是连续的,所以移动6个步长就可以指向第7个符’g’的起始地址。 4.对指针 * (q+1)+6使用取值运算符*得到字符’g’。 可结合下图理解:
如何定义指针数组和数组指针_数组指针和指针数组详解
如何定义指针数组和数组指针_数组指针和指针数组详解图解二级指针   代码:   结果:   四、使用二级指针输出任意字符串   1.输出任意指针数组中各指针指向的内存中存储的字符串   前面的字符型指针数组中的指针有3个,其指向的内存中存储的字符串也有三个,分别是”hello”,”fishinger”,”Good”,现在先输出其中任意一个字符串,我们只需要移动二级指针q即可,以输出字符串”fishinger”为例:   结果:   上述中的1换成2则输出第三个字符串”Good”,不加任和数,即*q,则输出第一个字符串”hello”。   2.输出指针数组中各指针指向的内存中存储的全部字符串   有了输出单个字符串的经验,输出全部字符串就很简单了,只需使用循环就可以输出所有字符串,代码如下:   结果:   写在最后: 文章可能有不足之处,欢迎大家一起来探讨交流,加深理解。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/57798.html

(0)
上一篇 2024年 8月 30日 下午11:36
下一篇 2024年 8月 30日 下午11:42

相关推荐

关注微信