以下代码片段(C 语言)打印什么?
以下代码片段(C 语言)打印什么?
int a = 033;
printf("%d", a + 1);
What does the following code fragment (in C) print?
int a = 033;
printf("%d", a + 1);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
033
是一个八进制整数文字,其值为8*3+3 = 27
。您的代码打印28
。以
0
开头的整数文字是八进制。如果它以0x
开头,则它是十六进制的。顺便说一句,作为示例,
这是一个编译时错误,因为
8
不是八进制数字。033
is an octal integer literal and its value is8*3+3 = 27
. Your code prints28
.An integer literal that starts with a
0
is octal. If it starts in0x
it's hexadecimal.By the way, for an example's sake
is a compile-time error since
8
is not an octal digit.我会冒着疯狂猜测的风险说
28
:)I would risk a wild guess and say
28
:)28.
033 在 C 中是一个八进制数,因为它有一个前导“0”,这意味着它的十进制值为 27。
所以,27 + 1 = 28
28.
033 is an octal number in C because it has a leading "0" and that means its value is 27 in decimal.
So, 27 + 1 = 28
这里有一个提示:
尝试看这个例子:
结果是:
here's a cue:
Try looking at this example:
this results in: