读书人

C 语言 int i = 11; i 为何是 12593

发布时间: 2012-10-17 10:25:46 作者: rapoo

C 语言 int i = '11'; i 为什么是 12593

C/C++ code
int _tmain(int argc, _TCHAR* argv[]){    int i = '11';    printf("%d\n", i);}


[解决办法]
'11'是字符串,ascii码值为0x3131,就是十进制的12593
[解决办法]
6: int i = '11';
00401048 C7 45 FC 31 31 00 00 mov dword ptr [ebp-4],3131h

i的补码变成了0x3131;
按照%d格式输出自然是12593
[解决办法]
探讨
'11'是字符串,ascii码值为0x3131,就是十进制的12593

读书人网 >C语言

热点推荐