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。診斷...