c語言中既然不支援函式過載那麼printf算怎麼回

時間 2021-10-14 23:46:23

1樓:匿名使用者

printf 是可變引數傳遞,不是過載。

2樓:

樓上說的不錯,printf只是函式呼叫而已

3樓:

這個問題問的不錯。

其實printf不是過載,c語言不支援函式過載 這句話是對的。

printf函式是通過變長參數列實現的。你可以檢視一下printf的函式原型宣告。

printf函式的實現在不同的機器上是不同的,但提供的介面是一致的。

printf函式的正確宣告形式如下:

int printf(const *fmt,...)其中省略號表示參數列中引數的數量和型別是可變的。它是變長參數列的固定形式。

省略號只能出現在參數列的尾部。

具體的話你還是上網查查吧,我對這個原型也沒研究。

我想既然你能問這個問題,看點資料不難理解,很快能明白怎麼回事。明白了以後,你就可以自己寫出這樣變長參數列的函式了。好好加油!

4樓:

兩個或兩個以上的函式,具有相同的函式名,但是形參的個數或者型別不同,編譯器根據實參和形參的型別及個數進行最佳匹配,自動確定呼叫哪個函式,這就是函式的過載。

為什麼在c語言中,這個printf的輸出是錯誤的?

5樓:

你這並不是強制型別轉換,printf是個變參函式,而且比較「笨」,它只能識別你給他設定好的輸出型別,因為你設定為%d,所以只能輸出出錯,5/2是結果是整數,而5.0/2是浮點數運算,結果為浮點數,所以型別不匹配。 謝謝,望採納

6樓:無眼之月

你這樣做5.0/2.0和之後的i=...都沒有進行強轉強轉得通過變數進行

int i = 5.0/2.0 ;

printf("%d", i );

答案是2

c語言中函式指標用法,C語言中函式指標用法

函式在記憶體中有一個物理位置,而這個位置是可以賦給一個指標的。一零點函式的地址就是該函式的入口點。因此,函式指標可被用來呼叫一個函式。函式的地址是用不帶任何括號或引數的函式名來得到的。這很類似於陣列地址的得到方法,即,在只有陣列名而無下標是就得到陣列地址。怎樣說明一個函式指標變數呢 為了說明一個變數...

c語言中清屏函式是什麼,C語言中清屏函式是什麼?

莊生曉夢 c語言中清屏函式是為清除螢幕上的輸出功能,用法是 void clrscr void 程式例 include int main int i clrscr for i 0 i 20 i cprintf d r n i cprintf r npress any key to clear scre...

c語言中函式型別有幾種,簡述c語言中函式共有哪幾種型別,各有何區別?

一般包括字元庫函式,數學函式,目錄函式,程序函式,診斷函式,操作函式等。字元庫函式所在函式庫為ctype.h 數學函式所在函式庫為math.h stdio.h string.h float.h 目錄函式所在函式庫為dir.h dos.h 程序函式所在函式庫為stdlib.h process.h。診斷...