c - 如何设置指向二维数组的指针

标签 c arrays pointers

只是想提前说声谢谢。我知道我可以通过示例设置指向数组的指针:

char myArray[100] = {""};
char *myArrayPtr = myArray;

但我对如何指向多维数组感到困惑。例如。

char myArray[10][100] = {""}; 
char *myArrayPtr = myArray;

我的想法是,除了第二个有点不同之外,这些是同一件事。第一个是指向大小为 [100] 的数组的指针,第二个是指向多维数组第一行的指针。这是正确的思维方式吗?如果可以,如何让第二个指针指向整个多维数组?

最佳答案

如果是

char myArray[100] = {""};  

char *myArrayPtr = myArray; 起作用是因为 myArray 衰减 1 指向其第一个元素的指针。衰减后的类型是 char *

如果是

char myArray[10][100] = {""}; 

char *myArrayPtr = myArray; 将不起作用,因为衰减后 myArray 将指向它的第一个元素,衰减后的类型是 char (*) [100]

要使类型兼容,myArrayPtr 应该是同一类型。

char (*myArrayPtr)[100] = myArray; 

1 数组到指针的转换发生在表达式中使用数组时,除非它是 sizeof 和一元 & 运算符的操作数。

关于c - 如何设置指向二维数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41026830/

相关文章:

c - 将字符串存储在数组中以便稍后使用

c - fpga(14 位)vhdl 模块与 NIos II 系统(16 位)之间的数据传输

java - 如何避免向 Jsonobject 添加重复条目

java - 一旦我的列表包含 3 个项目,Android 应用程序就会崩溃

C++ 指向函数的指针,初学者问题

创建一个链接列表,以升序存储项目或按该顺序打印

c - C 结构体中的反向输出顺序

c - 从 C 中的函数返回后数组元素发生变化

arrays - 使用插入更新 mongodb 中的数组值

c - 修改在 C 中作为指针传递的结构