簡體   English   中英

Function 調用不同的數據類型

[英]Function call with different datatypes

這個程序的第 7 行不是“pay = prt(pay);”嗎? 應該拋出編譯或運行時錯誤,因為它將 int 傳遞給需要雙精度的參數? 我用 dev-c++ 很好地編譯了它,並用 output 的兩行運行了程序。 請解釋一下,謝謝。

#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);   
}

C 在這種情況下會自動在不同的數字類型之間進行轉換。

請參閱類 C 語言中的隱式類型轉換

您將 function 聲明為int但從未返回任何內容,也沒有給main返回類型。 我想說任何編譯器都有權拒絕您的代碼。

具有較小或相等大小的數據類型可以轉換為較大的數據類型。

在相反的情況下:浮點到 int 會導致截斷,即刪除小數部分。 double to float 會導致將 digit long int 舍入為 int 會導致丟棄多余的高階位。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM