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'呢?
请教一下大家~
是d[0]打错了。。
展开
 我来答
百度网友7eff2e0
2012-05-20 · TA获得超过1043个赞
知道小有建树答主
回答量:787
采纳率:80%
帮助的人:540万
展开全部
由于d为char **,所以在表达式中d[0]的类型为char *,是一个指针。
指针存储占4字节,低位存在低字节,高位存在高字节。
(int型4字节的存储也是低位存在低字节,高位存在高字节)
于是d[0]的值就存在&a开始的4字节中,而这四字节的内容地址从低到高分别为abc\0,
所以d[0]的值就是0 * 4096 + 'c' * 256 + 'b' * 16 + 'a'
741852963一
2012-05-20 · TA获得超过268个赞
知道小有建树答主
回答量:354
采纳率:0%
帮助的人:213万
展开全部
指针怎么会是字符串呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式