直奔主題程式先看一道題:
#include
#include
#include
double proc(int q){
int n;
double sum,t;//本題的關鍵就在這幾個變數的型別上
sum = 2.0;
while(sum<=q){
t=sum;
//sum = sum+(n+1)/n;
sum =sum +(double)((n+1)/n);
n++;
return t;
void main(){
system("c");
printf("%f\n",proc(10))
當我們看到sum = sum+(n+1)/n;這樣的語句總會不假思索的對n這個變數來個強制轉換,但是c語言書上又有這麼一句話」當乙個低精度的資料型別和乙個高精度的資料型別運算時,運算結果為高精度型別。「這個時候不要迷茫,這只是強調結果。為了讓其他人看懂我們要對資料做些什麼,最好對它進行強制轉換。在這裡,所謂低精度到高精度的自動隱式轉換實際上還是強制的型別轉換。
C強制型別轉換與隱式轉換
如果乙個運算子兩邊的運算數型別不同,先要將其轉換為相同的型別,即較低型別轉換為較高型別,然後再參加運算,轉換規則如下圖所示 圖中橫向箭頭表示必須的轉換,如兩個float型數參加運算,雖然它們型別相同,但仍要先轉成double型再進行運算,結果亦為double型。縱向箭頭表示當運算子兩邊的運算數為不同...
c 中的型別轉換(強制轉換和隱式型別轉換)
在我們學習c語言的時候,就知道強制型別轉換和隱式型別的轉換,但是在型別轉換的過程中,很有可能乙個不注意,容易出問題,這無疑是加大了,程式設計師的工作量,而且還檢查很不好檢查。所以在c 中就對型別的轉換做了一定的限制,但是實際中大多數人,是在學習了c 語言後才學習 c 語言所以就用了 c 語言中的型別...
C語言基礎隱式型別轉換與強制型別轉換示例解析
目錄 資料有不同的型別,不同型別資料之間進行混合運算時必然涉及到型別的轉換問題。轉換包括隱式型別轉換和強制型別轉換。型別轉換的原則 占用mizfde記憶體位元組數少 值域小 的型別,向占用記憶體位元組數多 值域大 的型別轉換,以保證精度不降低。隱式轉換也稱為自動轉換,遵循一定的規則,由編譯器自動完成...