C 指向整数数组数组的指针

标签 c arrays pointers

C 中初始化整数数组(不同维度)的(常量)数组的等效项是什么?

在 JavaScript 中是这样的:

myarray=[ [1,2,3,4], [123,234], [1], [1,2] ]

console.log(myarray=[ [1,2,3,4], [123,234], [1], [1,2] ])

我如何在 C 中做同样的事情?

示例: 这在 C 中有效:

const unsigned char *cf[] = { "\x2", "\x0,\x1,\x2", "\x3,\x4"};

我希望做同样的事情,但不带引号。

直接输入2,[0,1,2],[3,4]

我解释得更好:

这有效:

int c1[]={1,2,3,4};
int c2[]={5,6};
int c3[]={2,3,4}

int *arr[]={c1,c2,c3};

这样我就可以访问每个元素 arr[0][x] arr[1][x]

现在我有一个大数组。我该如何初始化它?

最佳答案

const unsigned char *cf[] = { "\x2", "\x0,\x1,\x2", "\x3,\x4"};

I wish to do the same but without the quotes.

<小时/>

代码可以使用复合文字来形成小型unsigned char数组。然而,cf[](指向unsigned char的指针数组)会丢失每个数组有多大的信息。

不完全是“不同维度的整数数组的数组”。

int foo() {
  const unsigned char *cf[] = {
      (unsigned char[]) { 2, ',', 0 }, 
      (unsigned char[]) { 0, ',', 1, ',', 2, 0 }, 
      (unsigned char[]) { 3, ',', 4, 0 }
  };
  return cf[0][0];
}
<小时/>

注意: "\x2" 长度为 2 个字节。
"\x0,\x1,\x2" 长度为 6 个字节。
“\x3,\x4” 长度为 4 个字节。

`

关于C 指向整数数组数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57957046/

相关文章:

java - C 和 Java 中的条件相同但输出不同

c++ - 在 _beginthread 中接收到错误数据

java - android比较数组

C++ 二叉树堆栈溢出

c - 在C中为指向指向指针的指针分配内存

c - 使用结构指针和数组编写以下函数的代码

c - 我如何摆脱最后一个逗号?

c - 释放内存——二维数组

c - strcat 给我一个段错误

Java 到 C++ 的转换