鱼C论坛

 找回密码
 立即注册
查看: 1025|回复: 2

[已解决]指针问题,求助大佬

[复制链接]
发表于 2021-8-13 12:05:30 | 显示全部楼层 |阅读模式
20鱼币
求大佬解释下划线部分的意思?
最佳答案
2021-8-13 12:05:31
你圈起来的array前面的是强制类型转换,转换后的类型是数组指针,因为 * 在括号里边,优先级高,所以这个类型是指向整型数组的指针,这个被指向的整型数组包含三个整型元素,并把转换后的结果赋值给同样类型的 p 数组指针。
你圈起来的这行的整体意思是,把数组array的地址从整型指针转换成为指向包含三个整型变量的整型数组指针并把它赋值给同样类型的 p 指针。也就是说,此时 p 指针指向了 array 数组的前三个元素的地址,
printf("%d %d\n", p[0][2], p[1][0]);
这句话打印出来的是
3 4
通过强制类型转换后,可以理解为 p 指向的是一个二维数组,因为指针本身和数组就有不可告人的关系,然后又是指向数组,所以可以理解为二维数组,也就是把 array 数组理解成
{
{1, 2 ,3 ,},
{4 ,5 ,6 ,},
{7 ,8 ,9 ,},
}
捕获cc.PNG

最佳答案

查看完整内容

你圈起来的array前面的是强制类型转换,转换后的类型是数组指针,因为 * 在括号里边,优先级高,所以这个类型是指向整型数组的指针,这个被指向的整型数组包含三个整型元素,并把转换后的结果赋值给同样类型的 p 数组指针。 你圈起来的这行的整体意思是,把数组array的地址从整型指针转换成为指向包含三个整型变量的整型数组指针并把它赋值给同样类型的 p 指针。也就是说,此时 p 指针指向了 array 数组的前三个元素的地址, pri ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-13 12:05:31 | 显示全部楼层    本楼为最佳答案   
你圈起来的array前面的是强制类型转换,转换后的类型是数组指针,因为 * 在括号里边,优先级高,所以这个类型是指向整型数组的指针,这个被指向的整型数组包含三个整型元素,并把转换后的结果赋值给同样类型的 p 数组指针。
你圈起来的这行的整体意思是,把数组array的地址从整型指针转换成为指向包含三个整型变量的整型数组指针并把它赋值给同样类型的 p 指针。也就是说,此时 p 指针指向了 array 数组的前三个元素的地址,
printf("%d %d\n", p[0][2], p[1][0]);
这句话打印出来的是
3 4
通过强制类型转换后,可以理解为 p 指向的是一个二维数组,因为指针本身和数组就有不可告人的关系,然后又是指向数组,所以可以理解为二维数组,也就是把 array 数组理解成
{
{1, 2 ,3 ,},
{4 ,5 ,6 ,},
{7 ,8 ,9 ,},
}

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
wyz20010429 + 5 + 5 + 3 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-8-13 12:06:24 | 显示全部楼层
尽量详细说明,把我当个傻子就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 01:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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