int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int **p; p=(int**)a; 其中p=(int**)a;是什么意思啊

 我来答
444500564
2013-03-28 · 超过13用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:40.8万
展开全部
类型不匹配,才需要强制类型转换,更简单地说编译不过,强制转化就能编译过!
a 不是 int ** 类型的 ,虽然一维数组的数组名是一个指针 ,但是二维数组却不尽其然 ,因为它所指向的东西是有大小的 ,具体的来说 ,这个 a 是 int[3][3] 类型的 , 编译器需要知道要操作的单元的大小,
更多追问追答
追问
还是不明白啊。。。为什么是int**  为什么是两个*
追答
因为二维数组的数组名相当于一个二级指针  这个你懂么?
阙菲多子
2019-04-10 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:1046万
展开全部
a可以理解为这个数组的首地址
a[3]是指向第4个元素
所以p指向第4个元素
p[5]是从p后的5个
也就是第9个元素
所以b=9
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乐VoV乐
2013-03-28 · 知道合伙人软件行家
乐VoV乐
知道合伙人软件行家
采纳数:289 获赞数:878
深圳市潮范文化传播有限公司软件工程师.

向TA提问 私信TA
展开全部
首先p是一个指向整型指针变量的指针变量。
a是一个整型2维数组,
p=(int**)a;这句话就是强制类型转换后,让p指向数组a的首地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0acdcb4
2013-03-28 · TA获得超过174个赞
知道小有建树答主
回答量:217
采纳率:44%
帮助的人:78.6万
展开全部
p=(int**)a;这个是指针的操作啦,好好学习一下指针吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xpston008
2013-03-28 · TA获得超过365个赞
知道小有建树答主
回答量:367
采纳率:100%
帮助的人:347万
展开全部
让p 指向 a的首地址。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式