|
1
6
这个多维数组话题不幸地混淆了这么多C++程序员。好吧,解决方案如下:
这就是函数声明的样子。另一种选择,但完全等效
因为数组的第一个元素是5个整数的数组,所以当传递给该函数时,它将自动(隐式)转换为指向第一个元素的指针。
在注释中,您已显示您已绑定到
然后,实际上,你可以让你的函数接受一个
你的商店在哪里
|
|
2
3
你可以写:
然后使用
宣言
这样你就有了
下一个问题是如何分配这样一个数组。
它分配一个由10个数组组成的数组,每个“子”数组有20个字符。 在C/C++中,数组访问语法只是一种检索距离指针一定距离的值的方法。
|
|
|
3
1
|
|
|
4
1
事实并非如此。您可能正在使用Visual Studio,因为它在C++/CLI中作为本机托管类型使用,所以它显示为关键字。然而,这与C++无关,Visual Studio在这方面是误导的。 至于您的问题:您可以简单地传递指向char的指针的指针,然后直接传递嵌套数组( 假设您使用的是动态分配的阵列 ):
也就是说,您的函数假定一个固定的、已知的数组长度和一些其他细节。最好使用嵌套的
|
|
|
5
0
窃听器的回答遗漏了一个重要事实。他提议的是一系列的阵列。对于第一种情况,这会浪费指针数组的内存(“char**arrayOfArrays=new char*[10]”是该数组的创建点)。对于第二种情况,字符数组可能不是一个连续的内存块,这通常是一个问题。 C++中唯一的解决方法是创建一维数组,并在需要时计算索引。
但是,这可能比上面的解决方案慢一点(在GCC 3.4.5中测量),因此如果您对连续内存不感兴趣(例如,您总是使用[]访问元素,而不是通过向指针添加整数并取消引用它),那么您应该使用数组af数组。但是,如果您对拥有连续内存感兴趣,例如将其作为初始值传递给std::string对象或通过网络将其作为一个整体发送,则应使用第二个。 |
|
|
6
0
最好是使用指针,但是Borland C++允许传递数组作为函数的参数。查看此代码(包括:iostream和conio):
|
|
|
7
0
强制数组:Pass
|
|
|
Paul Williams · 迭代数组时输出有问题 1 年前 |
|
|
Omprakash · 使用Google工作表中的多行和多列进行筛选 2 年前 |
|
|
Genki · Bash:如何从多维数组中的命名键获取值 2 年前 |