今天附帶printf一些替代實現。
我們總是用printf做各種輸出語句:
printf("%d",i); printf("%s",str); printf("i'm xingyanhong\n");
今天偶然看到了這樣一句話:
int nflag = printf("%d",i);
就認為非常納悶,這麼執行後,nflag又是什麼值呢?
發現nflag與i的值一樣了。
這是整型的情況,其它型別又會如何呢?我又進行了實驗:
這下有意思了。nflag的數並沒有像int型時一樣和i相等而是等於8。細緻觀察我們能夠發現,這個數字8正是i的全部位數+1(代表小數點)
那麼字串又會如何呢?
我們接著來:
這裡nflag的值為9了,為什麼呢
^_^最後總結一下:
數字
int
printf 返回相應數字
數字
float
printf返回數字的位數+1(小數點)
字串
char* printf返回字串的長度,相當於strlen
事實上還有其它種的型別,大家能夠自己去試一試。這個知識點或許會有人嗤之以鼻,但我貼出來的想法,就是認為這個我並不知道的小知識,自己動手實現歸納出來還是有意義的,個人認為過程還是挺重要的。
每個你能夠努力今天。他們是厚厚禮。
使用printf輸出
echo命令的不同版本導致了unix系列機移植性最為頭痛的事情,在posix第一輪標準化時,委員會委員就如何標準化echo沒有達成一致意見,所以他們想出了乙個妥協的方案。echo是posix 標準的一部分,但是標準並不詳盡的指明echo的第乙個引數的具體行為。printf命令能夠像echo命令一樣輸...
printf的另類使用
今天偶然對printf的一些另類實現。我們總是用printf做各種輸出語句 printf d i printf s str printf i m xingyanhong n 今天偶然看到了這樣一句話 int nflag printf d i 就覺得很納悶,這麼執行後,nflag又是什麼值呢?發現nf...
C 使用多執行緒交替列印1 10
使用多執行緒交替列印1 10,執行緒1列印奇數,執行緒2列印偶數,有兩種方式實現,一種是使用訊號量 即互斥鎖 另一種是不使用互斥量,人為控制number的讀寫。以下為個人想法,可能有錯誤 這是乙個面試很常見的題目,要求交替列印,使用互斥量的原理很簡單,就是確保乙個執行緒在對number進行操作的時候...