0

我有一个对象 Student 具有 4 个属性(年龄、姓名、部门、​​姓氏)。我像这样创建该对象的数组;

Student students[10] blah blah init blah.

然后我想使用一个学生数组作为方法的参数;

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

“???” 是我的问题。我在那里写什么?我不知道。

需要帮忙。我是目标 c 的新手。

4

4 回答 4

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 回答
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));

你有一个对象数组,但想法是一样的。您只需再添加一个星号来表示它是指向对象指针的指针。

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

写吧

Student *tempStudent = (array)[0];
于 2016-01-06T14:25:31.630 回答