我在指针和如何正确声明函数中数组的传递方面有点挣扎。
有人可以解释一下这之间的区别:
- (void) testFunction : (int *) array
{
NSLog(@"%d",array[0]);
}
和这个 :
- (void) testFunction : (int []) array
{
NSLog(@"%d",array[0]);
}
非常感谢。
我在指针和如何正确声明函数中数组的传递方面有点挣扎。
有人可以解释一下这之间的区别:
- (void) testFunction : (int *) array
{
NSLog(@"%d",array[0]);
}
和这个 :
- (void) testFunction : (int []) array
{
NSLog(@"%d",array[0]);
}
非常感谢。
如果你想在objective-c中传递一个数组然后写在下面,这是传递一个数组的正确方法
- (void) testFunction : (NSArray*) yourArray
{
NSLog(@"%@",[yourArray objectAtIndex:0]);
}
在下面给出的示例中,您传递一个指向数组的指针,该数组指向该数组的第一个成员。因此,当您增加指针值时,指针指向的位置也会增加。这就是它指向数组中的下一项。
void testfunction(int *array)
{
printf("%d",*(array)); //value of array[0]
printf("%d",*(array+1)); //value of array[1]
printf("%d",*(array+2)); //value of array[2]
}
在下面的例子中,指针所持有的值正在改变,而不是位置。
void testfunction(int *array)
{
printf("%d",*(array)); //value of array[0] gets printed
printf("%d",*(array)+1); // value of array[0]+1
printf("%d",*(array)+2); //value of array[0]+2
}
下面给出的示例与第一个示例类似。array[0] 表示存在于第一个位置的值。索引值表示指针数组必须指向的位置。第二个打印语句递增第 0 个位置的值。第三个打印语句递增指针所在的位置数组指向。也就是说,它取数组中的下一个值。
void testfunction(int array[])
{
printf("%d",array[0]); //value of array[0]
printf("%d",array[0]+1); //value of array[0] +1
printf("%d",array[0+1]); // value of array[1].Index value changed
}
很抱歉使用 C 语法。我认为这样可以很容易地解释。希望能帮助到你!!!