配列その2

昔のC言語は配列の添え字は定数でないといけない、とかあったなぁ。
そんなんイマドキの言語には有り得ません(笑)

※未実行ソース(爆)

Java編

public class Array2{
	public static void main(String args[]){
		
		//パラーメータチェック等略
		
		int n = Integer.parseInt(args[0]);
		
		//数値チェック等略
		
		String name[] = new String[n];
		
		for(int i=0; i<name.length; i++){
			name[i] = i +"人目";
		}
	}
}

Javaは配列でもnewしなければなりません。
つまりJavaの配列は常に、スタック領域ではなく、ヒープ領域(だっけ?)に確保されます。

┌──────┐       ┌─────┐
│スタック領域│       │ヒープ領域│
├──────┤       ├─────┤
│ name   │→(参照?)→│ name[0]  │
└──────┘       ├─────┤
               │ name[1]  │
               ├─────┤
               │ name[2]  │
               ├─────┤
               │    :     │
               ├─────┤
               │ length   │
               └─────┘

PHP編

<?
$n = $_GET[num];

//数値チェック等略

for($i=0; $i<$n; $i++){
	$name[$i] = $i . "人目";
}
?>

PHPは宣言すら不要(あってもいい)。
中身はどうなってるかわかりません。(まぁスタックなわけがないことは確か)
何度も言いますが、ミスに注意。
(この後で$neme[0]とか見にいっても特にエラーにはならず空白が返ってきます。)

感想・質問等どうぞ


Tag: Tips Java PHP


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-05-20 (木) 17:30:11 (733d)
.NET Ajax AmazonWebServices Android C# C++ CMS Cacoo DB Exam Generics Java JavaScript Local Oracle PHP Perl Photo Programming Pukiwiki Python Qt Review Ruby SQLServer Seasar Software Tips Tool VB WebService Windows WindowsMobile XHTML XML XMLMaster XSLT game pdf wkhtmltopdf