一个C语言中的题目

#include<stdio.h>voidmain(){int*a[10],b,c;a[0]=&b;*a[0]=5;c=(*a[0])++;print("%d%d\n",... #include<stdio.h>
void main()
{ int *a[10],b,c;
a[0]=&b;
*a[0]=5;
c=(*a[0])++;
print("%d%d\n",b,c);
}
求出b和c的结果
展开
 我来答
花香人间
2008-05-20 · TA获得超过189个赞
知道小有建树答主
回答量:484
采纳率:0%
帮助的人:312万
展开全部
结果是6和5
a[0]=&b; 将b的地址赋给a[0];
*a[0]=5; 将5赋给a[0][0],*a[0]相当于
*(a[0]+0)相当于a[0][0];
c=(*a[0])++; 这句是先把a[0][0]的值赋给C,然后再自加1,因为所有的操作是相对于地址,所以b的值被修改为6。
我是就地
2008-05-20 · TA获得超过578个赞
知道答主
回答量:161
采纳率:0%
帮助的人:74.2万
展开全部
问题在哪?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
高金山
2008-05-20 · TA获得超过1万个赞
知道大有可为答主
回答量:4101
采纳率:0%
帮助的人:1637万
展开全部
#include <stdio.h>

void main()
{
int *a[10],b,c;
a[0]=&b;
*a[0]=5;
c=(*a[0])++;
printf("%d %d\n",b,c);
}

输出是:6 5

可见b=6,c=5啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liujijunbd
2008-05-20
知道答主
回答量:8
采纳率:0%
帮助的人:1.3万
展开全部
b=6,c=5
int *a[10]为数组指针,其元素为指针,a[0]=&b使把b的地址赋给a[0],即a[0]指向b。*a[0]=5把5 赋给a[0]所指向的内存单元即b,c=(*a[0])++;先计算()中的即c=5++;所以c=5,后*a[0]再加一为6;
又因为a[0]的指向为b,所以b=6.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式