一,printf
1)作用:產生格式化輸出的函式(定義在 stdio.h 中)。
2)用法:int printf(const char *format,[argument]);
format 引數輸出的格式,定義格式為:%[flags] [width] [.perc] [f|n|h|l] type
規定資料輸出方式,具體如下:
1.type 含義如下:
d 有符號10進製整數
i 有符號10進製整數
o 無符號8進製整數
u 無符號10進製整數
x 無符號的16進製制數字,並以小寫abcdef表示
x 無符號的16進製制數字,並以大寫abcdef表示
f 浮點數
e/e 用科學表示格式的浮點數
g 使用%f和%e表示中的總的位數表示最短的來表示浮點數 g 同g格式,但表示為指數
c 單個字元
s 字串
s wchar_t字元(寬字元)型別字串
% 顯示百分號本身
p 顯示乙個指標,near指標表示為:***x
far 指標表示為:***x:yyyy
n 相連參量應是乙個指標,其中存放已寫字元的個數
2.flags 規定輸出格式,取值和含義如下:
無 右對齊,左邊填充0和空格
- 左對齊,右邊填充空格
+ 在數字前增加符號 + 或 -
0 將輸出的前面補上0,直到佔滿指定列寬為止(不可以搭配使用-)
空格 輸出值為正時冠以空格,為負時冠以負號
# 當type=c,s,d,i,u時沒有影響
type=o,x,x時,分別在數值前增加'0',"0x","0x"
type=e,e,f時,總是使用小數點
type=g,g時,除了數值為0外總是顯示小數點
3.width 用於控制顯示數值的寬度,取值和含義如下
n(n=1,2,3...) 寬度至少為n位,不夠以空格填充
0n(n=1,2,3...) 寬度至少為n位,不夠左邊以0填充
* 格式列表中,下乙個引數還是width
4.prec 用於控制小數點後面的位數,取值和含義如下:
無 按預設精度顯示
0 當type=d,i,o,u,x時,沒有影響
type=e,e,f時,不顯示小數點
n(n=1,2,3...) 當type=e,e,f時表示的最大小數字數
type=其他,表示顯示的最大寬度
.* 格式列表中,下乙個引數還是width
5.f|n|h|l 表示指標是否是遠指標或整數是否是長整數
f 遠指標
n 近指標
h 短整數或單精度浮點數
l 長整數或雙精度浮點數
3)函式返回值:
printf函式型別為整型,其返回值是整型值。
其值實際為printf控制輸出的字元數。
printf()函式實際上是將所有引數按字元輸出,根據該函式的引數1(const char *format),我們不難理解。
例如:int a,b;
a=printf("gelin\n"); //a的值為6,
b=printf("the value of printf is:%d",a); //b的值為24
4)特別注意
printf 從右向左執行!!!
5)示例
1> printf("%10.5f\n",5.2); // 右對齊位寬 10個字元,小數點後5位
2>printf("%f",3); // 整型3不會被隱式型別轉換為浮點型,而是被直接按記憶體內容當作浮點型
內部使用等價於
int i = 3;
printf("%f", *(float*)&i)
對於%f預設為double浮點型(64位,預設的顯示精度是小數點後6位)則3實際的值接近於0
根據ieee 754標準對64位浮點數採用的表示為:
數符(1位)| 階碼 (11位) | 尾數 (52位)
記憶體中整數3就是 00000000 00000000 00000000 00000011 +32位隨機值
所以輸出值為:0.000000
3>printf("%d",5.01); // 輸出乙個大數
按int型別定址4個位元組,會產生大整數
指標和引用那些事
指標和引用的概念 引用 乙個已定義變數別名 指標和引用區別 1 指標是乙個位址,指向記憶體中一塊儲存單元,它的值可以發生變化,可以指向其他儲存單元 引用是乙個變數別名,和原來變數是同乙個東西,即在記憶體中占有同一儲存單元,被編譯器實現為const指標,並且不可被多次初始化 重定義 話不多說,看下面例...
引用和指標的那些事
2.3.1 引用 引用並非物件,相反的,它只是為乙個已存在物件所起的另外乙個名字。示例 int ival 1024 int refval ival tips 1.除2種情況外,引用的型別要和與之繫結的物件嚴格匹配 2.引用必須被初始化,且一旦初始化後,它和初始值物件一直繫結在一起,不能更改繫結的物件...
指標的那些事
關於指標,大家都不陌生,無論學習c,c 亦或者其它程式語言,它都是不可或缺的。但是指標的定義 指標的用法 等等各種問題。我們都必須弄清楚,不能讓他阻礙我們前進的步伐 先說int p 這裡有必要說明一下 int 表示的定義乙個指向int 型別的指標變數 該變數記憶體裡是所指物件的位址,用 指標運算子 ...