求大神指导下,谢谢哦!!
#include "stdio.h"void main()
{
char a, b;
a = 'a';
b = 'b';
a = a-32;
b = b-32;
printf("%c,%c\n",a,b);
printf("%d,%d\n",a,b);
}
我初学C,想问下上定义了 a = 'a'了 为什么下面 再次定义 a = a-32
最后的输出,printf 里的 a和b是 代表哪么 呢? 为什么出来会是大写 的 符号 和ASCII为什么不混乱 ?为什么会出现小写的呢?
同一个大写字母和小写字母ASCII码值相差32 = 是赋值,
因为'a'的 ASCII等于97,a-32= 65刚好是大写字符A的ASCII码,%c 输出 字符, %d 输出整形 输出的a、b第一次是字符形式输出,大写的A、B,第二次是acsii码输出65/66大写的和小写的acsii码相差32.
下面的代码就可以看出来:
// test14.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "stdio.h"
#include <conio.h>
void main()
{
char a, b;
a = 'a';
b = 'b';
printf("%c,%c\n",a,b);
printf("%d,%d\n",a,b);
a = a-32;
b = b-32;
printf("%c,%c\n",a,b);
printf("%d,%d\n",a,b);
getch();
}
开始变量a和b分别是字符a,b!ASCII码也就是97和98,减了32之后就是65和66,相应代表的字符就是A,B! 建议翻看一下ascii表,linux下可以直接man ascii,windows下。。。还是百度吧{:1_1:}
页:
[1]