我有一个对象 Student 具有 4 个属性(年龄、姓名、部门、姓氏)。我像这样创建该对象的数组;
Student students[10] blah blah init blah.
然后我想使用一个学生数组作为方法的参数;
-(void) displayStudentInArray : (????) studentarray atIndex: (int) index {.....}
“???” 是我的问题。我在那里写什么?我不知道。
需要帮忙。我是目标 c 的新手。
我有一个对象 Student 具有 4 个属性(年龄、姓名、部门、姓氏)。我像这样创建该对象的数组;
Student students[10] blah blah init blah.
然后我想使用一个学生数组作为方法的参数;
-(void) displayStudentInArray : (????) studentarray atIndex: (int) index {.....}
“???” 是我的问题。我在那里写什么?我不知道。
需要帮忙。我是目标 c 的新手。
而不是使用 C 表示法,数组应该这样制作:
NSArray *studentArray = [[NSArray alloc] initWithObjects: student1, student2, student2, ..., nil];
在这种情况下,参数类型将是 NSArray
-(void) displayStudentInArray : (NSArray *)studentarray atIndex: (int) index {.....}
创建数组的首选方法是使用NSArray(或者NSMutableArray如果您想在创建后修改数组):
NSArray *array = [[NSArray alloc]initWithObjects:student1, student2...];
那么您的方法签名将是:
-(void)displayStudentInArray:(NSArray *)studentarray atIndex:(int)index
这些答案是正确的,但如果你真的想使用 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 = ...
写吧
Student *tempStudent = (array)[0];