本文通過一個C程序實例對C語言中自動隱式轉換與類型強制轉換的注意點進行深入分析,詳情如下:
先看一個C程序:
#include<stdlib.h>#include<stdio.h>#include<conio.h>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語言書上又有這么一句話”當一個低精度的數據類型和一個高精度的數據類型運算時,運算結果為高精度類型。“這個時候不要迷茫,這只是強調結果。為了讓其他人看懂我們要對數據做些什么,最好對它進行強制轉換。在這里,所謂低精度到高精度的自動隱式轉換實際上還是強制的類型轉換。
新聞熱點
疑難解答
圖片精選