#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代码)?
我有一个带有简短变量声明的简单程序:
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?