c++ - C语言printf小问题
本文介绍了c++ - C语言printf小问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
代码如下:
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;
}
这篇关于c++ - C语言printf小问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文