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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Silent_memory 中级黑马   /  2014-3-5 11:20  /  1814 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Silent_memory 于 2014-3-12 22:18 编辑

假如我定义 int a = 10;  long int b = 20; 我想用NSLog输出a时 可以为 %i   输出b时用 %li  
这个 %i  与 %li 有什么具体的区别吗?  我用%i 去输出b 会对结果有啥影响。

评分

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

查看全部评分

2 个回复

倒序浏览
本帖最后由 脸皮猴 于 2014-3-5 12:05 编辑

%i应该是输出整型,%li是输出长整型。具体会出现什么样子的区别,你可以试一试。定义一个长整型变量,然后用%i输出。你自己看得到,你会记忆更深刻。
回复 使用道具 举报
因为长整型的范围大于等于整型。如果一个机器上长整型占4个字节。如一个长整型的二进制是这样表示的:00000000 00000011 01000000 00000000。而如果整型只占两个字节。你用%i输出整型。就会发生溢出。即把前面两个字节给舍去了。这个数字变成了 01000000 00000000!因此打印出来的这个整数并不是实际的值。

评分

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

查看全部评分

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