代码如下:
int main(void)
{
char c1='b',c2='e';
printf("%d,%cn",c2-c1,c2-'a'+"A");
return 0;
}
为什么我在编译的时候不会报错呢?而且都有结果?后面的c2-'a'+"A"不是int型加char*型字符串吗?这样能加吗?若能加请大牛说明下理由,请问为什么呢?
解决方案
我使用gcc是编译不过的,下面是调整后可以通过编译的代码。这下应该可以看清楚了吧。
#include <stdio.h>int main(void){ char c1 = 'b'; char c2 = 'e'; printf("%d, %c\n", c2 - c1, *((char *)(c2 - 'a' + "ABCDEFGHIJKLMN"))); printf("%d, %c\n", c2 - c1, "ABCDEFGHIJKMN"[c2 - 'a']); return 0;}