首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C >> C 語言問答

C語言 printf 格式字串解析:%d、%x、轉義字元與字面字元

     編輯:C 語言問答

代碼片段


printf("Dimensions: %dx%dx%d\n", length, width, height);

逐字元解析

片段類型含義
Dimensions: 字面字元原樣輸出字串 "Dimensions: "
%d格式指定符以有號十進位整數輸出對應引數 (length)
x字面字元原樣輸出字元 'x'(視覺上作為乘號/分隔符)
%d格式指定符輸出 width
x字面字元原樣輸出 'x'
%d格式指定符輸出 height
\n轉義序列換行 (LF, ASCII 10)

關鍵概念區別

1. 格式指定符 vs 字面字元

  • 格式指定符:以 % 開頭,後接型別字元 (d, f, c, s, p, x, o, u 等),對應可變參數列表中的引數。
  • 字面字元:格式字串中非 % 開頭的字元,原樣輸出。

在 "%dx%dx%d" 中,%d 是格式指定符,兩個 x 是字面字元,與十六進位格式 %x 無關。

2. %d vs %x

格式輸出進制範例 (輸入 255)
%d / %i有號十進位255
%x無號十六進位 (小寫)ff
%X無號十六進位 (大寫)FF
%#x帶 0x 前綴0xff

3. % 在格式字串中的特殊地位

  • % 是格式指定符的起始標記。
  • 若要輸出字面 %,必須寫 %%:printf("Progress: %d%%\n", 100); → Progress: 100%

執行範例


int length = 10, width = 20, height = 5;
printf("Dimensions: %dx%dx%d\n", length, width, height);

Dimensions: 10x20x5

常見格式指定符速查表

指定符對應型別輸出形式常用旗標
%d / %iint有號十進位%5d 寬度, %-5d 左對齊, %05d 補零
%uunsigned int無號十進位
%fdouble (float 提升)定點小數%.2f 2位小數, %10.2f 寬度10
%e / %Edouble科學記號%.3e
%g / %Gdouble自動選 %f 或 %e%.4g 4位有效數字
%cint (char 提升)單一字元
%schar*字串 (至 \0)%.10s 最大寬度
%pvoid*指標位址 (實作定義)%p
%x / %Xunsigned int十六進位%08X 8位大寫補零
%ounsigned int八進位
%%無字面 %

轉義序列速查

序列字元ASCII說明
\nLF10換行 (Unix/Linux)
\rCR13歸位 (Mac OS 9/Windows 換行一部分)
\tHT9水平定位符
\\\92反斜線本身
\""34雙引號 (字串常數內)
\''39單引號 (字元常數內)
\0NUL0空字元,字串結束標記
\xNN十六進位-如 \x1B = ESC
\NNN八進位-如 \033 = ESC

總結

printf 格式字串由 字面字元 與 格式指定符 組成。% 只用於啟動格式指定符,字面 % 需寫 %%。範例中的 x 純粹是視覺分隔符,與十六進位格式 %x 無關。理解這一區別,是掌握 C 語言格式化輸出的基礎。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved