C語言中自動隱式轉(zhuǎn)換與類型強制轉(zhuǎn)換實例分析
本文通過一個C程序?qū)嵗龑語言中自動隱式轉(zhuǎn)換與類型強制轉(zhuǎn)換的注意點進行深入分析,詳情如下:
先看一個C程序:
#include<stdlib.h> #include<stdio.h> #include<conio.h> double proc(int q){ int n; double sum,t;//本例的關(guān)鍵就在這幾個變量的類型上 sum = 2.0; while(sum<=q){ t=sum; //sum = sum+(n+1)/n;//自動隱式轉(zhuǎn)換 sum =sum +(double)((n+1)/n);//類型強制轉(zhuǎn)換 n++; } return t; } void main(){ system("C"); printf("%f\n",proc(10)) }
分析:
當(dāng)我們看到sum = sum+(n+1)/n;這樣的語句總會不假思索的對n這個變量來個強制轉(zhuǎn)換,但是c語言書上又有這么一句話”當(dāng)一個低精度的數(shù)據(jù)類型和一個高精度的數(shù)據(jù)類型運算時,運算結(jié)果為高精度類型?!斑@個時候不要迷茫,這只是強調(diào)結(jié)果。為了讓其他人看懂我們要對數(shù)據(jù)做些什么,最好對它進行強制轉(zhuǎn)換。在這里,所謂低精度到高精度的自動隱式轉(zhuǎn)換實際上還是強制的類型轉(zhuǎn)換。
相關(guān)文章
linux環(huán)境下C++實現(xiàn)俄羅斯方塊
這篇文章主要為大家詳細介紹了linux環(huán)境下C++實現(xiàn)俄羅斯方塊,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06求32位機器上unsigned int的最大值及int的最大值的解決方法
本篇文章是對求32位機器上unsigned int的最大值及int的最大值的解決方法進行了詳細的分析介紹,需要的朋友參考下2013-05-05