#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main () {
printf ("%d\n", sizeof(char));
printf ("%d\n", sizeof(unsigned char));
unsigned char test = 49;
char testchar = (char) (test - 127);
printf ("%x\n", testchar);
return 0;
}
但事实并非如此。特别是,我得到了以下输出:
1
1
ffffffb2
这似乎表明char已经转换为int
。有没有人能够解释一下,并且希望能提供一个解决方案?
%zu
来打印size_t
。使用错误的格式说明符,如%d
会引发未定义的行为。 - phuclv