該程序的第7行「pay = prt(pay);」應該拋出一個編譯或運行時錯誤,因爲它將一個int傳遞給需要雙精度的參數。我用dev-C++編譯它並且用兩行輸出運行程序。請解釋一下,謝謝。具有不同數據類型的函數調用
#include <stdio.h>
int prt(double b);
main()
{
int pay = 3;
double tax = 2.2;
pay = prt(pay);
prt(tax);
}
int prt(double b)
{
b *= 2;
printf("%.2lf\n", b);
}
http://stackoverflow.com/questions/175689/can-you-use-keyword-explicit-to-prevent-automatic-conversion-of-method-parameters提供了一個有趣的方式來強制類型嚴格在這裏,依靠模板和私人訪問... – fearlesstost
呃,[dev-C++](http://stackoverflow.com/tags/dev-c%2b%2b/info)。 –
不理解downvote。這個問題很容易理解,並且在話題上。由於OP沒有太多的教育,是否發生了downvote?如果是這樣,我們應該減少所有問題。 –