1. 程式人生 > >C語言基本資料型別對應位元組大小及printf函式輸出格式

C語言基本資料型別對應位元組大小及printf函式輸出格式

補充說明:

4位元組:int(%d),unsigned=unsigned int(%u),long=long int(%ld),unsigned long(%lu),float(%f)

8位元組:double(%lf),unsigned long long(%llu),long long=long long int(%lld)

12位元組:long double(%llf)

printf函式輸出格式:

語法:
  #include <stdio.h>
  int printf( const char *format, ... );

printf()函式根據format(格式)給出的格式列印輸出到STDOUT(標準輸出)和其它引數中.

字串format(格式)由兩類專案組成 - 顯示到螢幕上的字元和定義printf()顯示的其它引數. 基本上, 你可以指定一個包含文字在內的format(格式)字串,也可以是對映到printf()其它引數的"特殊"字元. 例如本程式碼

    char name[20] = "Bob";
    int age = 21;
    printf( "Hello %s, you are %d years old\n", name, age );

顯示下列輸出:

    Hello Bob, you are 21 years old

%s 表示, "在這裡插入首個引數,一個字串." %d 表示第二個引數(一個整數)應該放置在那裡. 不同的"%-codes

"表示不同的變數型別, 也可以限制變數的長度.

Code格式
%c字元
%d帶符號整數
%i帶符號整數
%e科學計數法, 使用小寫"e"
%E科學計數法, 使用大寫"E"
%f浮點數
%g使用%e或%f中較短的一個
%G使用%E或%f中較短的一個
%o八進位制
%s一串字元
%u無符號整數
%x無符號十六進位制數, 用小寫字母
%X無符號十六進位制數, 用大寫字母
%p一個指標
%n引數應該是一個指向一個整數的指標
指向的是字元數放置的位置
%%一個'%'符號

一個位於一個%和格式化命令間的整數擔當著一個最小欄位寬度說明符,並且加上足夠多的空格或0使輸出足夠長. 如果你想填充0,在最小欄位寬度說明符前放置0. 你可以使用一個精度修飾符,它可以根據使用的格式程式碼而有不同的含義.

  • 用%e, %E和 %f,精度修飾符讓你指定想要的小數位數. 例如,
        %12.6f
    

    將會至少顯示12位數字,並帶有6位小數的浮點數.

  • 用%g和 %G, 精度修飾符決定顯示的有效數的位數最大值.
  • 用%s,精度修飾符簡單的表示一個最大的最大長度, 以補充句點前的最小欄位長度.
所有的printf()的輸出都是右對齊的,除非你在%符號後放置了負號. 例如,
    %-12.4f

將會顯示12位字元,4位小數位的浮點數並且左對齊. 你可以修改帶字母lh%d, %i, %o, %u和 %x 等型別說明符指定長型和短型資料型別 (例如 %hd 表示一個短整數). %e, %f和 %g 型別說明符,可以在它們前面放置l指出跟隨的是一個double. %g, %f和 %e 型別說明符可以置於字元'#'前保證出現小數點, 即使沒有小數位. 帶%x型別說明符的'#'字元的使用, 表示顯示十六進位制數時應該帶'0x'字首. 帶%o型別說明符的'#'字元的使用, 表示顯示八進位制數時應該帶一個'0'字首.

printf()的返回值是列印的字元數,如果發生錯誤則返回一個負值.