【发布时间】:2016-12-07 20:30:45
【问题描述】:
只是想提前说声谢谢。我知道我可以通过示例设置指向数组的指针:
char myArray[100] = {""};
char *myArrayPtr = myArray;
但我对如何指向多维数组感到困惑。例如。
char myArray[10][100] = {""};
char *myArrayPtr = myArray;
我的想法是,除了第二个有点不同之外,它们是相同的。第一个是指向大小为 [100] 的数组的指针,第二个是指向多维数组第一行的指针。这是正确的思维方式吗?如果是这样,我怎样才能使第二个指针指向整个多维数组?
【问题讨论】:
-
char *myArrayPtr = &myArray;是错误的。检查您的编译器消息,如果您没有看到任何消息,那么您需要配置错误/警告级别。在进入二维数组案例之前,您需要了解此案例。 -
请不要试图在回复 cmets 时更正问题,除非增加清晰度。
-
在
C中,数组只是指针。指向char的一维数组的指针和指向多维数组的指针之间没有区别。它们都是char*值。 -
@SunKnight0;在 C 中,指针不是数组,数组也不是指针。
-
这似乎是一种初始化
chars 数组的不寻常方式。通常我们会看到myArray[100] = ""或myArray[100] = {'\0'}。 OP 示例中的括号分隔符是否将空字符串文字放在一个块中?