本文主要是介绍二维数组参数的传递,多维同理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
void show1(char * sz[], int n){
cout << sz[0] << endl;
cout << sz[1] << endl;
}
void show2(char (*sz)[20], int n) //能接受二维字符数组,首维数从实参无法取得,
//因为凡数组类型,编译器解释其类型均为指向首个元素的指针,
//而并不能带入元素个数
{
cout << *sz << endl;
cout << *(sz + 1) << endl;
}
void show3(char ** sz) //能接受指针数组名,它的成员都是各个指针,还是同样道理,
//因为凡数组类型,编译器解释其类型均为指向首个元素的指针,
//而并不能带入元素个数
{
cout << *sz << endl;
cout << *(sz + 1) << endl;
}
int main()
{
char str[2][20] = {"abc", "def"};
//err show1(str, 2);
show2(str, 2);
//err show3(str);
char *psz[2] = {"ghi", "jkl"};
//err show2(psz, 2);
show3(psz);
return 0;
}
因为凡数组类型,编译器解释其类型均为指向首个元素的指针,而并不能带入元素个数
而且字符数组,较为特殊,输出首元素的指针就会输出整个串
其它类型的数组,则严格的输出地址值或者输出元素值
这篇关于二维数组参数的传递,多维同理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!