Fortran 數(shù)據(jù)類型與變量聲明

2023-12-29 14:54 更新

Fortran 語(yǔ)言的數(shù)據(jù)類型比較簡(jiǎn)單,沒(méi)有像其他高級(jí)編程語(yǔ)言那樣分得那么細(xì),主要分為整數(shù)型和實(shí)數(shù)型兩個(gè)大類。整數(shù)型的計(jì)算與 C、C++、Python 中有點(diǎn)類似,整數(shù)與整數(shù)的商還是一個(gè)整數(shù)。即使當(dāng)不整除的時(shí)候,為了保持結(jié)果和參與運(yùn)算的變量類型一致 Fortran 編譯器會(huì)只取正常數(shù)學(xué)運(yùn)算結(jié)果的整數(shù)部分,如下示例所示。實(shí)數(shù)型其實(shí)與數(shù)學(xué)意義上的實(shí)數(shù)是一致的,既包括整數(shù)也包括小數(shù),所以當(dāng)不整除的除法中的兩個(gè)變量有一個(gè)為實(shí)數(shù)型時(shí),F(xiàn)ortran 編譯器會(huì)將兩個(gè)變量類型對(duì)應(yīng)成實(shí)數(shù)型并計(jì)算出正常的帶小數(shù)的結(jié)果,如下示例所示。

因?yàn)樗凶兞慷家谑褂弥奥暶黝愋?,所以?dāng)屬于同一種類型時(shí)我們可以按照下面那樣寫(xiě)在同一行,不同變量之間用逗號(hào)分隔開(kāi)。為了代碼美觀,建議在逗號(hào)與后一個(gè)變量名之間留一個(gè)空格。

!!! 兩個(gè)整數(shù)型相除
integer x, y
x = 2
y = 3
print *, x/y ! 結(jié)果為 0
print *, y/x ! 結(jié)果為 1

!!! 被除數(shù)為實(shí)數(shù)型,除數(shù)為整數(shù)型
real m
integer n
m = 10
n = 3
print *, m/n ! 結(jié)果為 3.33333325

!!! 被除數(shù)為整數(shù)型,除數(shù)為實(shí)數(shù)型
integer m
real n
m = 10
n = 3
print *, m/n ! 結(jié)果為 3.33333325

!!! 被除數(shù)和除數(shù)均為實(shí)數(shù)型
real m, n
m = 10
n = 3
print *, m/n ! 結(jié)果為 3.33333325

實(shí)際上,F(xiàn)ortran 語(yǔ)言除了整數(shù)型和實(shí)數(shù)型兩個(gè)大類之外,還有一些小類,比如說(shuō)復(fù)數(shù)類型、布爾類型、字符串類型。因?yàn)椴僮飨到y(tǒng)一般使用實(shí)數(shù)型或者復(fù)數(shù)類型時(shí)都默認(rèn)采用單精度,如果需要使用雙精度則需要特殊聲明。所有數(shù)據(jù)類型總結(jié)如下:

數(shù)據(jù)類型標(biāo)識(shí)符示例
整數(shù)型integer2
實(shí)數(shù)型real2.0
雙精度實(shí)數(shù)型double precision2.0
復(fù)數(shù)型complex(1.0, 2.0)
雙精度復(fù)數(shù)型complex(kind(0d0))(1.0, 2.0)
布爾型logicaltrue/false
字符串型character"Text"

這里有一點(diǎn)值得十分注意:一個(gè) Fortran 文件的變量聲明必須在最開(kāi)始,如果多個(gè)變量聲明行之間摻雜了其他的操作行或者命令行,則后續(xù)的變量聲明將會(huì)無(wú)效,在編譯的過(guò)程中就會(huì)直接報(bào)錯(cuò)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)