C的问题,高手帮忙解决一下

[复制链接]
查看11 | 回复0 | 2009-9-5 23:24:02 | 显示全部楼层 |阅读模式
p=s 让指针p指向数组首地址,所以第一次*p = “表达式”相当于a[0]=p[0]=“表达式”,p++后等于指针后移一个int的字节数,即后移到a[1]位置。*p = “表达式”相当于a[1] = p[1]=“表达式”。以后依次类推。现在来看你的程序。do{}while循环,先执行一次,那么b = a % 16;a为28,则b为12。b>10,所以p[0] = b+55 p[0]为67,字符'c'的ascll码是67,之后p++,则下次*p等于 p[1]即a[1],之后a = a/5;a目前为28,计算后a为5,5>0继续下次循环,b = a %16,a为5,则b计算后等于5,5<10, *p = 5 + 48,即p[1] = 53,字符5的ascll码是53,以后同样原理算出p[2] = 49,为字符'1'的ascll码,此时a = 0,结束循环,继续*p = '\0',则意味着p[3] = '\0',所以输出字符串为C51
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行