【发布时间】:2018-02-03 06:13:13
【问题描述】:
我有这段代码:
#include <stdio.h>
#include <iostream>
int main(int n, char** args)
{
int i = 140;
char c = i;
int j = c;
printf("%d", j);
system("pause");
}
输出:
-116
据我了解,char c = i 会将 ASCII 码为 140 的字符分配给 c,但我想知道之后分配 int j = c; 时发生了什么,-116 的值从何而来?
如果我将char c = i; 更改为unsigned char c = i;,则输出为140。
如果我不在这里使用unsigned,是否有办法让j 的值等于140? (假设 i >= 0 且 i
【问题讨论】: