相关疑难解决方法(0)

数组指针衰减并将多维数组传递给函数

我知道一个数组衰减到指针,如果一个声明

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然后数组将始终可修改?

我知道类型检查的东西只发生在编译时,但我仍然对技术上作为一个引用传递的东西感到困惑(即只有当传递类型指针的参数时,或者指针数组是否为传递 - 参考也是?)

很抱歉这个问题在这个地方有点儿,但由于我很难理解这一点,很难说出一个精确的询问.

c arrays callstack pointers multidimensional-array

10
推荐指数
3
解决办法
4346
查看次数

在C++中是类似的东西

这是一些示例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++ java

0
推荐指数
1
解决办法
144
查看次数

2d数组的动态内存分配,其中列的大小不同

我想用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++ arrays 2d

0
推荐指数
1
解决办法
784
查看次数

C#中的数组结构是什么,但C/C++/Java中没有?

我正在准备考试,这个问题我找不到答案.阅读一堆文章,我发现最接近

C#中的数组有三种形式:一维,多维矩形数组(如C++多维数组)和锯齿状数组(数组数组).

所以这表明C++中没有锯齿状数组,但它存在于Java中.另一件事是只有C#可以有非零数组下限(如[-1,3]或[4,9].它会被认为是不同的数组结构吗?

c c# c++ java array-difference

-2
推荐指数
1
解决办法
483
查看次数