你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

楼主: 苏柚

【1.6签到】每日问答——指针数组和数组指针有啥区别?

   关闭 [复制链接]
回帖奖励 87 ST金币 回复本帖可获得 1 ST金币奖励! 每人限 1 次

16

主题

295

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-10-27
发表于 2016-1-6 16:45:48 | 显示全部楼层

回帖奖励 +1 ST金币

指针数据是数组的内容为指针
数组指针是指向数组的指针
回复 支持 反对

使用道具 举报

0

主题

163

回帖

0

蝴蝶豆

高级会员

最后登录
2017-5-4
发表于 2016-1-6 16:46:29 | 显示全部楼层

回帖奖励 +1 ST金币

指针数组 是一个数组
数组指针  是一个指针
回复 支持 反对

使用道具 举报

0

主题

257

回帖

0

蝴蝶豆

高级会员

最后登录
2017-3-10
发表于 2016-1-6 16:47:46 | 显示全部楼层

回帖奖励 +1 ST金币

签到。。。。。。。。。。学习
回复 支持 反对

使用道具 举报

4

主题

180

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-8-18
发表于 2016-1-6 16:54:42 | 显示全部楼层

回帖奖励 +1 ST金币

数组指针与指针数组的区别在于:数组指针p是一个指针,而指针数组p是一个存放N个指针变量的数组。
一、数组指针
int (*p)[n]
重点:()优先级高([]、()的优先级是一样的,但它们的方向是从左至右的,所以先运行括号里的*p),首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度(n*sizeof(int))。
如要将二维数组赋给一指针,应这样赋值:
       int a[3][4];
       int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。
       p = a;        //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0]
       p++;      //<=>a[1]<=>p[1]
同时用来指向二维数组时,其引用和用数组名引用都是一样的即a<=>p。比如要表示数组中i行j列一个元素a[i][j]:
       p[i][j]<=>a[i][j] <=>*(p[i]+j)<=>*(a[i]+j) <=> *(*(p+i)+j)<=>*(*(a+i)+j) <=>  (*(p+i))[j]<=>(*(a+i))[j]

二、指针数组
int *p[n]
重点:[]优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素:即它就是一个存放了n个指针的数组。
这样赋值也是错误的:p=a;因为p是个右值,p的值只存在p[0]、p[1]、p[2]...p[n-1],而且它们分别是指针变量可以用来存放变量地址。但可以这样*p=a; 这里*p表示指针数组第一个元素的值,a的首地址的值。
如要将二维数组赋给一指针数组:
        int *p[3];
        int a[3][4];
        for(i = 0; i < 3; i++)
        p[i] = a[i];
这里int *p[3] 表示一个一维数组内存放着三个指针变量,分别是p[0]、p[1]、p[2],默认情况下这三个指针变量都指向NULL的,所以要分别赋值。
回复 支持 反对

使用道具 举报

5

主题

71

回帖

0

蝴蝶豆

高级会员

最后登录
2019-6-11
发表于 2016-1-6 16:59:22 | 显示全部楼层

回帖奖励 +1 ST金币

Paderboy 发表于 2016-1-6 08:45
数组指针与指针数组的区别在于:数组指针p是一个指针,而指针数组p是一个存放N个指针变量的数组。
一、数组 ...

这个不错~!
回复 支持 反对

使用道具 举报

107

主题

812

回帖

5

蝴蝶豆

论坛元老

最后登录
2019-8-28
发表于 2016-1-6 17:06:54 | 显示全部楼层

回帖奖励 +1 ST金币

签到
回复 支持 反对

使用道具 举报

11

主题

103

回帖

0

蝴蝶豆

高级会员

最后登录
2020-11-7
发表于 2016-1-6 17:22:07 | 显示全部楼层

回帖奖励 +1 ST金币

指针数组,是由指针组成的数组,它是数组
数组指针,它是一个指向数组的指针,是一个指针

问题:
TTL,LVDS,CMOS的差异
回复 支持 反对

使用道具 举报

6

主题

598

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-12-9
发表于 2016-1-6 17:22:29 | 显示全部楼层

回帖奖励 +1 ST金币

玩儿的是汇编,不会C呀
回复 支持 反对

使用道具 举报

26

主题

845

回帖

0

蝴蝶豆

金牌会员

最后登录
2018-9-27
发表于 2016-1-6 17:57:26 | 显示全部楼层

回帖奖励 +1 ST金币

回复 支持 反对

使用道具 举报

11

主题

1139

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-7-10
发表于 2016-1-6 18:01:15 | 显示全部楼层

回帖奖励 +1 ST金币

只能签到了
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版