搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 编程范 > 【编程经验】关于数组指针与指针数组的解释

【编程经验】关于数组指针与指针数组的解释

编程范 2018-04-04

点击蓝字

       啦啦啦啦,小编又来了呢,今天给大家讲讲数组指针与指针数组,依旧废话不多说,直接步入正题。

关于数组指针和 指针数组,相信狠很多同学对此疑惑过,今天我们来把他们分个清楚!

首先,让我们从字面意义上理解他们:

指针数组 本质呢 是数组!

数组指针 本质呢 是 指针!

(PS:你可以认为后俩字是什么,它本质就是什么! 语文的知识吧?宾语?(*^__^*) )

那么理解这个之后,数组指针也一样的道理,它呢本质是个指针,只不过是指向一个一维数组的指针,也称之为“行指针”,前提呢,是这个一维数组的长度和这个数组指针的长度要一致才可以赋值。

下面我们通过代码来理解:

//////////////////////////////////////////////////////////////////////////

//Name: 测试 数组指针 与 指针数组 

//Author:C语言研究中心(www.dotcpp.com)

//time:2015/5/28

//////////////////////////////////////////////////////////////////////////

#include<stdio.h>

int fun()

{

 char *p1[10]; // 指针数组

 char (*p2)[10]; //数组指针 

 

 //10个char变量

 char a1[10]={'1','2','3','4','5','6','7','8','9','\0'}; 

 //两个长度为10的一维数组

 char a2[2][10]={{'q','w','e','r','t','y','u','i','o','\0'},{'a','s','d','f','g','h','j','k','l','\0'}}; 

 

 

 p1[0]=&a1[0];

 p1[1]=&a1[1];

 //...

 p1[8]=&a1[8];

 

 

 //验证输出

 printf("%c\n",*p1[0]);

 printf("%c\n",*p1[1]);

 //...

 printf("%c\n",*p1[8]);

 

 //////////////////////////////////////////////////////////////////////////

 //////////////////////////////////////////////////////////////////////////

 p2=&a2[0];

 

 printf("%s\n",p2);

 printf("%s\n",p2+1);//注意此处+1为加一行!

 

 return 0;

}

怎么样?能看明白吗?运行结果如下:


如果您通过注释看懂这段代码后,想必应该就清楚数组指针和 指针数组的区别了。

最后我们总结数组指针和指针数组的区别如下:

1、本质不同,一个是数组,一个是指针

2、数组指针是一个变量,指针数组是N(数组长度)个变量



版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《【编程经验】关于数组指针与指针数组的解释》的版权归原作者「编程范」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注编程范微信公众号

编程范微信公众号:dotcpp

编程范

手机扫描上方二维码即可关注编程范微信公众号

编程范最新文章

精品公众号随机推荐

上一篇 >>

开发工具及框架