簡體   English   中英

C語言中math.h的sqrt()和pow()函數的工作

[英]Working of sqrt() and pow() functions of math.h in C

Cmath.h庫的sqrt()pow()函數未針對integer類型進行定義,但它們不會引發任何錯誤,但對於integer參數可以正常工作,這如何工作?

在需要浮點值的上下文中使用整數時,會將其隱式轉換為浮點值。 這就是您的方案中發生的事情,使用了接受浮點參數的函數。

因此,當您編寫:

#include <math.h>
....
int i;
double d = sqrt(i);

使用隱式類型轉換的規則將整數i轉換為double ,並將double傳遞給sqrt()

從整數到浮點的隱式轉換在C語言中工作正常,不是嗎?

如果將整數作為參數傳遞給這些函數,則它將自動轉換為浮點類型。

正如其他人指出的那樣,在需要時,整數將隱式轉換為浮點數。 但是,請確保包括math.h標頭。

暫無
暫無

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

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