首页 > 开发 > C++ > 正文

C语言printf小问题

2017-09-11 21:19:18  来源: 网友分享

代码如下:
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;}