小编Rev*_*ick的帖子

我的C程序的输出不是预期的

#include<stdio.h>
#include<conio.h>
int main()
{
   char c, p;
   p=getchar();
   int n=p+259;
   c=n;
   putchar(c);
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我输入'a'字符,有人可以告诉我为什么这个程序的输出是'd'字符?

如果p ='a',则n = 97 + 259 = 356.如果我的n变量是356,如何为c分配值100('d'的ASCII代码)?

c character variable-assignment output

1
推荐指数
2
解决办法
69
查看次数

C 中短变量的值

我有一个带有简短变量声明的简单程序:

    short int v=0XFFFD;  
    printf("v = %d\n",v);  
    printf("v = %o\n",v);  
    printf("v = %X\n",v);
Run Code Online (Sandbox Code Playgroud)

结果是:

v = -3 ; v = 37777777775 ; v = FFFFFFFD
Run Code Online (Sandbox Code Playgroud)

我不明白如何计算这些值。我知道一个短变量可以保存 -32768 和 32767 之间的值,而值 0XFFFD 会导致溢出,但我不知道如何计算确切值,在这种情况下为 -3。

另外,如果我的声明是 v=0XFFFD 为什么输出 v=%X 是 FFFFFFFD?

c variables integer-overflow short variable-declaration

0
推荐指数
1
解决办法
1215
查看次数