这些是用于二维数组的符号
char (*names)[5] ;
和
char* names[] = {"Jan","Feb"};
和
char names[3][5] = { Initializers..};
我对这些符号感到非常困惑。
第一个声明名称是指向 5 个字符数组的指针,即
names -> a char pointer -> "Some string"
第三个有不同的内存映射,即它像普通数组一样以行主要顺序存储,与上述不同。
第 2 记法与第 1 和第 3 记法有何相似或不同?
将它们传递给函数也是完全不同的故事。如果我们将二维数组声明为类型 2,则它作为双指针 ( char** names
) 传递,而如果它是类型 1 或类型 3,则应在声明中提及列。
请帮助我更清楚地了解这些问题。谢谢。