日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

剖析printf函数

發布時間:2023/11/30 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 剖析printf函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

printf是什么,對于起初學習c語言的同學來說肯定都特別的疑惑。在這里,解答一下:它是一個函數。既然是一個函數的話,想必肯定有返回值和參數吧。那么它的返回值和參數是什么呢?

1、看一下這個例子,可能更好理解點:


這個看起來只是個printf函數,但它卻在printf函數基礎上嵌套了好幾層printf,這樣下來結果是什么呢?


我們就知道,printf(buf, fmt, arg)函數可以傳多個參數,就像這里嵌套的printf函數一樣,而它的返回值為什么是4321呢。

43即是i的值,2是打印出的43這個值的字符的個數,1是上一層打印出的字符的個數。

這里還需要說明一點的是:函數的參數壓棧是從右往左壓的。即調用printf函數時也是最右邊的參數先壓棧。

2、格式化輸出

printf()函數是一個格式化輸出函數,可以打印出變量的指令。

比如我們經常遇到的%d,%c,%s等,可以通過符號轉換輸出相應的結果。

3、printf()函數的參數列表

形式:printf(const char *fmt, ...)

int __cdecl printf(_In_z_ _Printf_format_string_ const char * _Format, ...);

當一個可變參數列表特別多或者不確定時,我們就可以用...替代它。

要處理變參函數,需要用到 va_list 類型,和 va_start(初始化參數指針),va_end,va_arg(獲得指向參數的值)宏定義。

這些參數都是定義在stdarg.h這個頭文件中.

用va_arg()從左到右逐個取參數值。



總結

以上是生活随笔為你收集整理的剖析printf函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。