c语言 字母地址若有以下定义和语句char c1='b',c2='e'printf("%d,%c\n",c2-c1,c2

1个回答

  • 字符的计算是用它对应的ASCII码进行计算.

    c2='e'; ASCII码是101

    c1='b';ASCII码是98

    所以c2-c1=3

    又是%d输出,所以第一个输出的就是3

    c2-‘a’+A,这里的A没有单引号,编译器会把它认为是一个变量,而之前没有定义A,所以会报错说A没定义.

    如果有单引号,即c2-'a'+'A',那还是用它们各自的ASCII码进行计算.

    e 对应101

    a 对应97

    A 对应65

    所以最终结果是69

    而输出格式是%c,所以要找69对应的字符,是E,所以最终输出大写字母E