C語(yǔ)言中自動(dòng)隱式轉(zhuǎn)換與類(lèi)型強(qiáng)制轉(zhuǎn)換實(shí)例分析
本文通過(guò)一個(gè)C程序?qū)嵗龑?duì)C語(yǔ)言中自動(dòng)隱式轉(zhuǎn)換與類(lèi)型強(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è)變量的類(lèi)型上 sum = 2.0; while(sum<=q){ t=sum; //sum = sum+(n+1)/n;//自動(dòng)隱式轉(zhuǎn)換 sum =sum +(double)((n+1)/n);//類(lèi)型強(qiáng)制轉(zhuǎn)換 n++; } return t; } void main(){ system("C"); printf("%f\n",proc(10)) }
分析:
當(dāng)我們看到sum = sum+(n+1)/n;這樣的語(yǔ)句總會(huì)不假思索的對(duì)n這個(gè)變量來(lái)個(gè)強(qiáng)制轉(zhuǎn)換,但是c語(yǔ)言書(shū)上又有這么一句話(huà)”當(dāng)一個(gè)低精度的數(shù)據(jù)類(lèi)型和一個(gè)高精度的數(shù)據(jù)類(lèi)型運(yùn)算時(shí),運(yùn)算結(jié)果為高精度類(lèi)型?!斑@個(gè)時(shí)候不要迷茫,這只是強(qiáng)調(diào)結(jié)果。為了讓其他人看懂我們要對(duì)數(shù)據(jù)做些什么,最好對(duì)它進(jìn)行強(qiáng)制轉(zhuǎn)換。在這里,所謂低精度到高精度的自動(dòng)隱式轉(zhuǎn)換實(shí)際上還是強(qiáng)制的類(lèi)型轉(zhuǎn)換。
相關(guān)文章
C++實(shí)現(xiàn)班級(jí)成績(jī)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)班級(jí)成績(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)程拷貝文件,通過(guò)本文給大家分享程序思路及完整代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12operator new在C++中的各種寫(xiě)法總結(jié)
這篇文章并不是一個(gè)綜合的手冊(cè),而是一個(gè)C++中各種內(nèi)存分配方法的概述。它面向已經(jīng)很熟悉C++語(yǔ)言的讀者2013-09-09求32位機(jī)器上unsigned int的最大值及int的最大值的解決方法
本篇文章是對(duì)求32位機(jī)器上unsigned int的最大值及int的最大值的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C++實(shí)現(xiàn)簡(jiǎn)易的五子棋游戲
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)易的五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05