0

4 つの属性 (年齢、名前、部門、姓) を持つオブジェクト Student があります。このようなオブジェクトの配列を作成します。

Student students[10] blah blah init blah.

次に、メソッドの引数として Student 配列を使用します。

-(void) displayStudentInArray : (????) studentarray atIndex: (int) index {.....}

'???' 私の問題です。私はそこに何を書きますか?わかりません。

助けが必要。私は目的cに慣れていません。

4

4 に答える 4

1

これらの答えは正しいですが、本当にC 記法を使用したい場合は、別のポインターへの参照を示すために別のアスタリスクを追加する必要があります。

- (void)displayStudentInArray:(Student**)studentArray atIndex:(int)index {
    Student* firstStudent = studentArray[1];
    //do what you want with the array
}

これは、C 配列がメモリ内のアドレスへのポインタにすぎないためです。プリミティブに C 配列が必要な場合は、次のようになります。

int* arrayOfInts = malloc(yourSize * sizeof(int));

オブジェクトの配列がありますが、考え方はまったく同じです。オブジェクトへのポインターへのポインターであることを示すために、アスタリスクをもう 1 つ追加するだけです。

Student** students = ...
于 2012-06-21T23:18:03.187 に答える
1

C 記法を使用する代わりに、配列は次のように作成する必要があります。

NSArray *studentArray = [[NSArray alloc] initWithObjects: student1, student2, student2, ..., nil];

その場合、パラメータの型は NSArray になります

-(void) displayStudentInArray : (NSArray *)studentarray atIndex: (int) index {.....}
于 2012-06-21T23:04:29.967 に答える
1

配列を作成するための推奨される方法は、次を使用することですNSArray(またはNSMutableArray、作成後に配列を変更する場合)。

NSArray *array = [[NSArray alloc]initWithObjects:student1, student2...];

次に、メソッドの署名は次のようになります。

-(void)displayStudentInArray:(NSArray *)studentarray atIndex:(int)index
于 2012-06-21T23:04:40.303 に答える