阅读前提:你得知道啥是数组。
本文需要弄清楚的问题如下:
1,数组作为函数参数,传入的是值,还是地址?
2,数组作为函数参数,数组的长度能否确定?
解决如下
1,数组作为函数参数,传入的是地址。因为数组不可以被拷贝
#include <iostream> using namespace std; void testArray(int a[]) { cout<<"a作为参数的地址是"<<a<<endl; } int main() { ,,,,,}; cout<<"a刚开始的地址是:"<<a<<endl; testArray(a); system("pause"); ; }
2,数组作为函数参数,在用sizeof获取他的大小时,它已经是一个指针了。也就是说函数中没有办法知道传入进来的数组大小是多少。(数组仅在定义其的域范围内可确定大小。)
#include <iostream> using namespace std; void testArray(char a[]) { cout<<"a的大小是:"<<sizeof(a)<<endl; } int main() { ,,,,,}; cout<<"a刚开始的大小是:"<<sizeof(a)<<endl; testArray(a); system("pause"); ; }
3.确定函数中传入数组长度的方法
#include <iostream> using namespace std; void testArray(char a[],int len) { cout<<"a的大小是:"<<len<<endl; } int main() { ,,,,,}; cout<<"a刚开始的大小是:"<<sizeof(a)<<endl; testArray(a,])); system("pause"); ; }
返回数组的函数
数组不能被拷贝,所以函数不能返回数组,不过函数可以返回数组的指针或是引用
空一行留待以后补充
声明一个返回数组指针的函数
Type (*function(parameter_list))[demension]
Type返回类型
parameter_list参数列表
demension数组的长度
(*function(parameter_list))两端的括号必须括上,没有括号返回的类型将是指针的数组