在 scanf 中使用 %c 并将值赋给 C 中的 int 变量?

Using %c in scanf and assigning the value to an int variable in C?

int main()
{
    int i= 0;
    printf("i value is %d\n",i);
    scanf("%c", &i);  // I am giving an input of 255 here

    printf("i after scan %d\n",i); // This prints 50. How???
    
    return 0;
}

谁能解释一下 printf 语句是如何给出 50 的?我有一台小端机器。

您的程序甚至无法编译,因为 I 未声明。我假设这是一个错字。由于您正在扫描 %c 它只会读取一个字符,即 2 来自 255。现在 2 的 ascii 代码为 50,正在打印。