鱼C论坛

 找回密码
 立即注册
查看: 3225|回复: 4

小甲鱼C语言试题里面的问题 大婶求助

[复制链接]
发表于 2013-11-17 18:19:37 | 显示全部楼层 |阅读模式
1鱼币
#include <stdio.h>
main()
{
        int a = 011;
        printf("%d", a ++);
}                    这段代码 运行后为什么是9  011是几进制     新手各种疑问  求解决啊 大神

最佳答案

查看完整内容

如果一个整型常量的第一个字符是数字 0, 那么该常量将被视为八进制数。 ----C陷阱与缺陷。 int a = 011; 是给 a 初始化了一个八进制数 011, 转换成十进制就是 9, 这个可以用计算器算一下,我的进制转换也没学好- -、、 a++ 是先使用 a 的值然后再把它加 1, 所以这里它传进 %d 的值还是 011 没有变。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-17 18:19:38 | 显示全部楼层
如果一个整型常量的第一个字符是数字 0, 那么该常量将被视为八进制数。 ----C陷阱与缺陷。

int a = 011;  是给 a 初始化了一个八进制数 011,
转换成十进制就是 9, 这个可以用计算器算一下,我的进制转换也没学好- -、、
a++ 是先使用 a 的值然后再把它加 1, 所以这里它传进 %d 的值还是 011 没有变。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-17 18:44:13 | 显示全部楼层
是8进制的,0X是16 进制
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-17 20:43:16 | 显示全部楼层
是八进制,一般这种0为首的数值是八进制,16进制是0x,没有这些的是十进制的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-11-18 10:46:33 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 08:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表