鱼C论坛

 找回密码
 立即注册
查看: 2182|回复: 3

[已解决]指针

[复制链接]
发表于 2019-11-17 22:18:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
int temp[5]={1,2,3,4,5};
int (*p2)[5]=&temp;
int i;
for(i=0;i<5;i++){
        printf("%d \n",*(*p2 +i));
}


其中*(*p2 +i) 如何理解使用两个*
最佳答案
2019-11-17 23:15:33
本帖最后由 jackz007 于 2019-11-17 23:19 编辑

        这一句
        int (*p2)[5] ; 
        定义 p2 是一个指向末维为 5 的整型数组的指针, p2 的步进单位是 5 个 int,就是说 p2 的数值每增减 1 个单位就是在内存中前进或后退 5 个整型数存储空间的跨度。
        * p2 是指针的降维操作, * p2 的类型是 int *,所以,* p2 的步进单位是 1 个整型数的存储空间。所以,* p2 + i 指向从地址 * p2 开始的后面第 i 个整数,那么,* (* p2 + i) 自然就是提取存储单元的数值了。由于
        int (*p2)[5]=&temp;
        * p2 指向了一维数组 temp,那么,* (* p2 + i)  与 temp[ i ] 的表达效果完全一样,就是说,p2 可以像 temp 一样表达和使用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-11-17 22:42:47 From FishC Mobile | 显示全部楼层
本帖最后由 倒戈卸甲 于 2019-11-17 22:47 编辑

小甲鱼的带你学c带你飞视频,指针数组与数组指针,指针与二维数组这两节去看一遍吧。还是看后面这一节吧,小甲鱼好像讲指针与二维数组时回顾了数组指针的用法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-11-17 23:09:51 | 显示全部楼层
倒戈卸甲 发表于 2019-11-17 22:42
小甲鱼的带你学c带你飞视频,指针数组与数组指针,指针与二维数组这两节去看一遍吧。还是看后面这一节吧, ...

就是看完了不太懂。这个代码就是抄他的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-17 23:15:33 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2019-11-17 23:19 编辑

        这一句
        int (*p2)[5] ; 
        定义 p2 是一个指向末维为 5 的整型数组的指针, p2 的步进单位是 5 个 int,就是说 p2 的数值每增减 1 个单位就是在内存中前进或后退 5 个整型数存储空间的跨度。
        * p2 是指针的降维操作, * p2 的类型是 int *,所以,* p2 的步进单位是 1 个整型数的存储空间。所以,* p2 + i 指向从地址 * p2 开始的后面第 i 个整数,那么,* (* p2 + i) 自然就是提取存储单元的数值了。由于
        int (*p2)[5]=&temp;
        * p2 指向了一维数组 temp,那么,* (* p2 + i)  与 temp[ i ] 的表达效果完全一样,就是说,p2 可以像 temp 一样表达和使用。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 19:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表