Assignment (代入) - 組込み

:組込み代入は非ポインタ変数に値を代入するために使用されます。ポインタの場合,組込み代入はポインタ変数に結合されている指示先に値を代入するために使用されます。変数 (または指示先) に代入された値は,等号の右辺の式を評価することによって決定されます。

形式

variable = expression

variable
組込み型または (ユーザー定義代入を持たない) 構造型のスカラまたは配列の名前。配列は大きさ引継ぎ配列であってはならず,スカラまたは配列を PARAMETER または INTENT(IN) 属性を使って宣言することはできません。

expression
組込み型,または variable と同じ構造型。その形状は variable に適合しなくてはなりません。必要ならば,variable と同じ型と種別値に変換されます。

規則と振る舞い

変数に値が代入される前に,代入文中の式の部分と変数中のすべての式が評価されます。変数中の式の定義は,代入文式の部分の評価に影響を与えてはならず,またこれの影響を受けることもできません。


注意:実行時システムがスカラ整数または文字変数に値を代入し,変数が代入される値よりも短かった場合,代入される値は切り捨てられ,有効ビット数 (または文字数) が減ることがあります。この切り捨ては警告なしに起こり,そのために実行時システムがプログラムに誤った情報を渡すことになる可能性があります。

変数がポインタである場合,確定可能な指示先に結合されていなくてはなりません。指示先と式の形状は適合していなくてはならず,その型と種別パラメタは一致しなくてはなりません。

cDEC$ NOSTRICT コンパイラ指示文 (基本設定) が有効であれば,文字式を非文字変数に代入することができ,非文字変数または配列要素 (しかし式ではない) を文字変数に代入することができます。

互換性

CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB

関連情報

Assignment (=) - ユーザー定義代入NOSTRICT

		REAL a, b, c
		LOGICAL abigger
		CHARACTER(16) assertion
		c = .01
		a = SQRT (c)
		b = c**2

		assertion = 'a > b'
		abigger = (a .GT. b)

		WRITE (*, 100) a, b
	100	FORMAT (' a =', F7.4, ' b =', F7.4)

		IF (abigger) THEN
			WRITE (*, *) assertion, ' is true.'
		ELSE
			WRITE (*, *) assertion, ' is false.'
		END IF
		END

	!	上記の異例は以下を出力します。
	!	   a =    .1000     b =   .0001         a > b is true.

	!	以下は有効,無効な代入文の例を示しています。
	!
		INTEGER i, j
		REAL rone(4), rtwo(4), x, y
		COMPLEX z
		CHARACTER name6(6), name8(8)
		i         = 4
		x         = 2.0
		z         = (3.0, 4.0)
		rone(1) = 4.0
		rone(2) = 3.0
		rone(3) = 2.0
		rone(4) = 1.0
		name8   = 'Hello,'
	!	以下の代入文は有効です:
		i     = rone(2); j = rone(i); j = x
		y     = x; y = z; y = rone(3); rtwo = rone; rtwo = 4.7
		name6 = name8
	!	以下の代入文は無効です:
		name6 = x + 1.0; int = name8//'test'; y = rone
		END