凹凸曼先森 发表于 2019-6-18 16:08:36

新手求解释

#include <stdio.h>

void main()
{
        int a,b=322;
        float x,y=8.88;
        char cl='k',c2;
      a=y;
        x=b;
        a=cl;//a 等于字母 K的asc2 码107,a=107   
        c2=b;//   b=322322对应的asc2 是B,因此c2=B   322=2*128+6
        printf("%d,%f,%d,%c\n",a,x,a,c2);

}

为什么a最后输出是107,不是8呢?

newu 发表于 2019-6-18 16:11:54

本帖最后由 newu 于 2019-6-18 16:13 编辑

你的注释不是写了吗,a 等于字母 k(小写)的ascii 码107

凹凸曼先森 发表于 2019-6-18 16:13:59

newu 发表于 2019-6-18 16:11
你的注释不是写了吗,a 等于字母 K 的ascii 码107

前边不是还有个a=y;吗?那不就是8吗?

newu 发表于 2019-6-18 16:15:25

凹凸曼先森 发表于 2019-6-18 16:13
前边不是还有个a=y;吗?那不就是8吗?

对的,但是后边 a = cl; 这句把前边的a覆盖了

也就是说对a进行了重新赋值

凹凸曼先森 发表于 2019-6-18 16:17:31

newu 发表于 2019-6-18 16:15
对的,但是后边 a = cl; 这句把前边的a覆盖了

也就是说对a进行了重新赋值

原来这样,谢谢你
页: [1]
查看完整版本: 新手求解释