char变量的行为,分配了什么值以及为什么?

时间:2014-06-26 07:32:08

标签: c gcc char output

我正在练习一些 C 相关的MCQ,我遇到了一个预测输出的问题。这是个问题:

#include <stdio.h>

int main(void) {
    char a = '012';
    char b = '\012';
    printf("%d %d", a, b);
    return 0;
}

给出的输出是:50 10

然后我添加了更多行并在 gcc编译器

上执行
#include <stdio.h>
int main(void) {
    char a = '\012';
    char b = '\08';
    char c = '012';
    char d = '\0x12';
    printf("%d %d %d %d", a, b, c, d);
    return 0;
}

我得到的输出是10 56 50 50(参见this

对于某些变量,我认为最后一个字符的 ASCII 已分配但不是全部。任何人都可以解释这种行为以及如何分配值?如果有人可以引用这些参考文献,将会很有帮助。

0 个答案:

没有答案