簡體   English   中英

以下代碼片段(在C中)打印什么?

[英]What does the following code fragment (in C) print?

以下代碼片段(在C中)打印什么?

int a = 033;
printf("%d", a + 1);

033八進制整數字面值 ,其值為8*3+3 = 27 你的代碼打印28

0開頭的整數文字是八進制。 如果它以0x十六進制。

順便說一句,為了一個例子的緣故

int x = 08; //error

是一個編譯時錯誤,因為8不是八進制數字。

我冒險瘋狂猜測說28 :)

28。

033是C中的八進制數,因為它具有前導“0”,這意味着它的值為十進制的27。

所以,27 + 1 = 28

這是一個提示:

  • 開頭為零的3位數字是八進制數。
  • 一個2位數值,開頭是“0x”,是一個十六進制。

試着看看這個例子:

 #include<stdio.h>
 main()
 {
 int a = 033;
 printf("\nin decimal: %d", a+1);
 printf("\nin hex: %x", a+1);
 printf("\nin octal: %o", a+1);
 }

這導致:

in decimal: 28
in hex: 1c
in octal: 34

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM