[英]Working of sqrt() and pow() functions of math.h in C
C
中math.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.