鱼C论坛

 找回密码
 立即注册
查看: 4629|回复: 3

C指针输出问题

[复制链接]
发表于 2012-9-2 20:08:07 | 显示全部楼层 |阅读模式
2鱼币
  1. char a[ ]="language",*p;
  2. p=a;
  3. while(*p!='u') {printf("%c",*p-32);p++}
复制代码
输出LANG,不懂,求解释下!!!

最佳答案

查看完整内容

首先while(*p!='u')表示,若p所指向的字符不为'u'则进入循环,否则退出,对于"language",当p指向第5个字符时就退出循环了,所以没有输出'u'后面的字符 *p-32,表示p所指向的字符对应的ASCII码减去32对应的字符,参考ASCII表可以发现,小写字母ASCII码减32变成了对应的大写字母,所以"lang"变成了对应的大写字母"LANG"被输出
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-2 20:08:08 | 显示全部楼层
首先while(*p!='u')表示,若p所指向的字符不为'u'则进入循环,否则退出,对于"language",当p指向第5个字符时就退出循环了,所以没有输出'u'后面的字符
*p-32,表示p所指向的字符对应的ASCII码减去32对应的字符,参考ASCII表可以发现,小写字母ASCII码减32变成了对应的大写字母,所以"lang"变成了对应的大写字母"LANG"被输出
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-9-2 23:50:40 | 显示全部楼层
:lol楼上完美解答
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-9-3 02:14:52 | 显示全部楼层
2L 正解:lol
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-11 14:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表