宅宅羙侽 发表于 2013-2-3 14:39:36

求大神指导下,谢谢哦!!

#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为什么不混乱 ?为什么会出现小写的呢?

(@_@) 发表于 2013-2-3 14:46:06

同一个大写字母和小写字母ASCII码值相差32

郑小夕 发表于 2013-2-3 15:19:31

= 是赋值,
因为'a'的 ASCII等于97,a-32= 65刚好是大写字符A的ASCII码,%c 输出 字符, %d 输出整形

小新110 发表于 2013-2-3 15:30:28

输出的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();
}

谭斌谭斌 发表于 2013-2-5 13:20:50

开始变量a和b分别是字符a,b!ASCII码也就是97和98,减了32之后就是65和66,相应代表的字符就是A,B!

half-life 发表于 2013-2-8 11:23:38

建议翻看一下ascii表,linux下可以直接man ascii,windows下。。。还是百度吧{:1_1:}
页: [1]
查看完整版本: 求大神指导下,谢谢哦!!