A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© pprgra56 中级黑马   /  2014-3-11 10:28  /  1159 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

void main()
{char c;
c='\376';
printf("%c,%d\n",c,c);}
输出为什么不是254 啊 跟我想的不一样啊

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

3 个回复

倒序浏览
不明白为什么会输出254...
回复 使用道具 举报
'\'表示的是8进制的,用引号引起来说明是一个char型的字符,而八进制378 正好是10进制的254,而有符号char类型的范围是-128~127,显然254超过这个范围

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
输入结果应该是:?-2
'\'表示的是8进制的,用引号引起来说明是一个char型的字符
而八进制376 是10进制的254
而有符号char类型的范围是-128~127,很显然254超出了这个范围,此时得加或减去N个256调整到这个范围
所以254-256=-2,即输出的-2

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马