标签:
阅读前提:你得知道啥是数组。
本文需要弄清楚的问题如下:
1,数组作为函数参数,传入的是值,还是地址?
2,数组作为函数参数,数组的长度能否确定?
解决如下
1,数组作为函数参数,传入的是地址。
1 #include <iostream> 2 using namespace std; 3 void testArray(int a[]) 4 { 5 cout<<"a作为参数的地址是"<<a<<endl; 6 } 7 int main() 8 { 9 int a[]={1,2,3,4,5,6}; 10 cout<<"a刚开始的地址是:"<<a<<endl; 11 testArray(a); 12 system("pause"); 13 return 0; 14 }
2,数组作为函数参数,在用sizeof获取他的大小时,它已经是一个指针了。也就是说函数中没有办法知道传入进来的数组大小是多少。(数组仅在定义其的域范围内可确定大小。)
1 #include <iostream> 2 using namespace std; 3 void testArray(char a[]) 4 { 5 cout<<"a的大小是:"<<sizeof(a)<<endl; 6 } 7 int main() 8 { 9 char a[]={1,2,3,4,5,6}; 10 cout<<"a刚开始的大小是:"<<sizeof(a)<<endl; 11 testArray(a); 12 system("pause"); 13 return 0; 14 }
3.确定函数中传入数组长度的方法
1 #include <iostream> 2 using namespace std; 3 void testArray(char a[],int len) 4 { 5 cout<<"a的大小是:"<<len<<endl; 6 } 7 int main() 8 { 9 char a[]={1,2,3,4,5,6}; 10 cout<<"a刚开始的大小是:"<<sizeof(a)<<endl; 11 testArray(a,sizeof(a)/sizeof(a[0])); 12 system("pause"); 13 return 0; 14 }
标签:
原文地址:http://www.cnblogs.com/jin521/p/5610124.html