c++ 数组参数传递,c++数组作为参数传入函数
第1篇问题2解决方案2.1使用参考文献2.2提供附加参数。
1从代码code可以看出,当一个数组作为参数传递时,输出的数组长度只是该数组的一个指针变量的大小(由于计算机是64位机器,所以输出64位,即8个字节)[传递数组的第一个地址,即指向第一个元素的指针]。也就是说,函数和编译器都不知道传递给它的数组的实际长度。
#包括
使用STD:cout;使用STD:endl;
无效测试(char A[20]){
cout sizeof(A)endl;
}//输出8个字节(64位指针变量)
void Test2(char* A){
cout sizeof(A)endl;
}//输出8个字节
void Test3(char ( A)[20]){
cout sizeof(A)endl;
}//输出20个字节
int main(){
char A[20]={ 0 };
测试(A);
测试2(A);
cout sizeof(A)endl;
测试3(A);
返回0;
}
2个解决方案
2.1使用参考void Test3(char (A)[20]){
cout sizeof(A)endl;
}//输出20个字节
2.2提供附加参数void Test4(char A[],int size){
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。