您的位置:首页 > 移动开发 > IOS开发

iOS基础知识:数组作为函数的参数

2015-11-04 19:56 337 查看

数组作为函数的参数:

1.定义语法:
返回值类型 函数名(类型数组名[]){

函数体;
}
例如: void array(int str[]){
str[0]=10;
str[1]=20;
}

注意:参数里数组名中括号的长度,可写可不写,写了也没用,规范的写法是不写

引用传递:

传递的是地址,就好比是把内存共享了一份给函数

特点:在函数内改变了形参的值,那么外面的实参也会发生变化
例如:

void array(int nums[]){
nums[0]=10;
nums[1]=20;

nums[2]=30;
nums[3]=40;

nums[4]=50;
}
int main{

int nums[5] ={1,2,3,4,5};
array(nums);
return 0;
}
数组作为函数的参数是引用传递,因为数组是共享空间的,也就是所谓的引用传递

在函数中遍历数组:

如果在函数内计算这个数组的长度,永远都会等于2,并不是真实的长度
解决方法:

如果以后要用数组作为函数的参数,那么必须再加一个参数,用来传入数组的长度
例如:
void array(char chs[],int length){

for (int i=0; i<length; i++) {

printf("%c\n",chs[i]);

}
}
int main{

char chs[] ={'a','b','c','d','e'};

int len= sizeof(chs) / sizeof(char);//计算数组长度

array(chs, len);
return0;

}
注意:

因为数组名是一个地址常量 不能通过数组名直接赋值

1.数组和数组变量之间,不能赋值
例:int nums[5] = {1,2,3,4,5};
int nums2[5] = nums; //报错

2.数组名声明后也不能赋值
int nums[5];
nums = {1,2,3,4,5};

总结:

数组作为函数的参数,形参不需要写长度

必须再加一个参数,让调用者传入数组的长度

数组作为函数的参数,不区分,但是区分类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: