作者YCTzeng (Desperate Alex)
看板Fortran
标题Re: [问题] 我想问有关宣告的问题
时间Wed Mar 4 22:44:51 2009
┌
integer 整数
变数┼
real 浮点数
└
character 字串
以上三个都是变数,当然还有logical等等
parameter 常数,常数可以是整数,浮点数,字串等等
电脑里的变数是储存在记忆体(就是RAM)里面的东西,
当你宣告的时候,就是告诉电脑要分配记忆体某个部份来储存这个变数。
但是常数不是,常数是不可以改变数值的东西,它也不是记录在记忆体。
例如:
real :: abc
这样就是叫电脑分配记忆体的某个区块,这个区块的名字叫做abc,且这个区块
储存的变数必须「只能」以浮点数的方式储存
「=」这个等号不是你平常数学里的等号,等号的意思是把「等号右边的值」储存到
「等号左边的变数」
例如:
abc=
3.0
这样电脑就会去找名叫abc的记忆体区块,然後把3.0这个浮点数储存在这个记忆体区块。
又例如:
abc=
1.5*
2.0
这样电脑就会去找名叫abc的记忆体区块,然後把1.5*2.0的值(也就是3.0这个浮点数),
储存在这个记忆体区块。
再举例:
integer :: i
i=
3
这样电脑就会先分配一个记忆体区块并把这个记忆体区块命名为i,而且这个
叫做i的记忆体区块「只能」储存整数。然後电脑就会去找命名为i的记忆体区块,
将3这个整数值储存进这个区块。
再再举例:
integer :: i
i=
3.0
同上,但是这次问题来了。3.0这个浮点数要存入「只能」储存整数的i,
这样就怪怪的,所以大部分的电脑就会无条件舍去法,自动变成
「把整数3储存到名为i的记忆体区块」。
这样看来好像还是没有问题,但是如果是下面这个程式
integer :: i
i=
3.5
就惨了,因为3.5这个浮点数被转换成3这个整数,然後在储存在名为i的记忆体区块。
这就是初学者很常犯的毛病。
累了,还没跟你说到常数,
其余不懂的地方可以看彭国伦的书,或是板上其他大大指点。
※ 引述《john11894324 (维尼)》之铭言:
: INTEGER REAL CHARACTER
: 常数 实数 字串
: 我想问的是有关宣告的问题?
: 不宣告 所代表的是哪一种东西?上述三者
: 代表一个空间吗?
: 还有常数与实数差在哪?
: 我知道我的问题有点多!
: 拜托大家了
: (第一个学的程式语言是fortran真不知该如何理解)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.128.128.198
1F:推 john11894324:谢谢 03/05 20:41