我知道一个数组衰减到指针,如果一个声明
char things[8];
Run Code Online (Sandbox Code Playgroud)
然后在things其他地方使用,things是一个指向数组中第一个元素的指针.
另外,根据我的理解,如果有人宣称
char moreThings[8][8];
Run Code Online (Sandbox Code Playgroud)
那么moreThings它不是指向char的类型指针,而是类型为"指向char的指针数组",因为衰减只发生一次.
什么时候moreThings传递给一个函数(比如说原型void doThings(char thingsGoHere[8][8])实际上是什么进行了堆栈?
如果moreThings不是指针类型,那么这仍然是一个传递引用?我想我一直认为它moreThings仍然代表了多维数组的基地址.如果doThings接受输入thingsGoHere并将其传递给另一个函数会怎么样?
规则几乎是除非指定数组输入,const然后数组将始终可修改?
我知道类型检查的东西只发生在编译时,但我仍然对技术上作为一个引用传递的东西感到困惑(即只有当传递类型指针的参数时,或者指针数组是否为传递 - 参考也是?)
很抱歉这个问题在这个地方有点儿,但由于我很难理解这一点,很难说出一个精确的询问.
这是一些示例jave代码.这在C++中也可能吗?
public class Example {
public static void main(String args[]){
int[][] a = new int[3][];
a[0] = new int[]{1};
a[1] = new int[]{1,2};
a[2] = new int[]{1,2,3};
display(a);
}
}
Run Code Online (Sandbox Code Playgroud) 我想用c ++语言动态创建一个二维数组.但是在那个2d数组列中应该有不同的大小.我的意思是说2d数组不应该是M*N.
它应该是......
1 2 next line
3 4 5 next line
2 3 4 5 next line
5 next line
4 5 7
Run Code Online (Sandbox Code Playgroud)
我能够以上述方式创建二维数组,但如何显示数组内容不断为我创建一个问题.请有人解释我如何解决这个问题.
我正在准备考试,这个问题我找不到答案.阅读一堆文章,我发现最接近
C#中的数组有三种形式:一维,多维矩形数组(如C++多维数组)和锯齿状数组(数组数组).
所以这表明C++中没有锯齿状数组,但它存在于Java中.另一件事是只有C#可以有非零数组下限(如[-1,3]或[4,9].它会被认为是不同的数组结构吗?