c++ - C语言printf小问题

查看:100
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆