c语言数组给二级指针赋值问题求解~

chara[3][4]={"abc","ABC","123"};char**d;d=a;printf("a=%d\n",a);printf("d=%d\n",d);pri... char a[3][4]={"abc","ABC","123"}; char **d; d=a; printf("a=%d\n",a); printf("d=%d\n",d); printf("a[0]=%d\n",a[0]); printf("d[0]=%d\n",d[0]); 输出a与b相同 a[0]输出的是指向a[0][0]的地址 我现在不理解的是b[0]的值为什么会是'\0cba'呢? 请教一下大家~ 展开
 我来答
御炎占曼安
2019-06-12 · TA获得超过3801个赞
知道大有可为答主
回答量:3090
采纳率:25%
帮助的人:378万
展开全部
由于d为char
**,所以在表达式中d[0]的类型为char
*,是一个指针。
指针存储占4字节,低位存在低字节,高位存在高字节。
(int型4字节的存储也是低位存在低字节,高位存在高字节)
于是d[0]的值就存在&a开始的4字节中,而这四字节的内容地址从低到高分别为abc\0,
所以d[0]的值就是0
*
4096
+
'c'
*
256
+
'b'
*
16
+
'a'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式