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