字符常量‘10’是什么?

来源:百度知道 编辑:UC知道 时间:2024/06/26 05:41:36
在VC++里的字符常量‘1’,‘2’等等储存的都是1B的ASCII码;那‘10’表示的是什么????
cout<<'10';的输出结果为12592,cout<<sizeof('10');的输出为4,即储存‘10’用了4个字节。怎么解释?

用16进制输出看得清楚。
'1' 输出 为 0x31
'0' 输出 为 0x30
'10' 输出 为 0x3130

12592 是10 进制数值,等于16进制 0x3130

cout<<sizeof('10');的输出为4,这与编译器有关。
'10' 用 unsigned short int 就可存放。
编译器若处理成 unsigned int,而 int 默认 (例如VC++)为4 bytes.

如果你用变量:
unsigned short int b = '10';
cout<<sizeof(b); 输出为2 !
cout<< b; 还是 12592

双引号是全部引用字符串
单引号是引用ASC2码
所以‘10’的编码是0011 0001 0011 0000 正好是12592
如果是“10”则sizeof(“10”)输出的是3

也是一样也是在ASCII 中去找相应该的是什么...