小编Mag*_*Vis的帖子

C如何处理char sums?

当我使用C++时,我调用了一个重载函数foo,如下所示:

foo('e' - (char) 5)
Run Code Online (Sandbox Code Playgroud)

它可以根据类型结果输出"this is a char"或"this is a int".我从我的程序中得到"这是一个int",如下所示:

#include <iostream>

void foo(char x)
{
    std::cout << "output is a char" << std::endl;
}
void foo(int x)
{
    std::cout << "output is an int" << std::endl;
}
int main()
{
    foo('a' + (char) 5);
}
Run Code Online (Sandbox Code Playgroud)

我的导师说,在C中,上面的表达式('a' + (char) 5),作为char计算.我在C99标准中看到,字符被提升为整数以查找总和,但是当C完成时C是否会将它们重新转换为字符?我找不到任何看似可信的参考文献,说明促销完成后C实际上做了什么,并找到了总和.

总和是作为int保留还是作为char给出?我如何在C中证明这一点,或者是否有我不理解/发现的参考?

c c++ int char

4
推荐指数
1
解决办法
217
查看次数

标签 统计

c ×1

c++ ×1

char ×1

int ×1