【发布时间】:2017-08-16 06:57:08
【问题描述】:
我有二维数组
char arr[2][3]={"sam","ali"}
和指向这个数组的指针
char(*ptr)[3]=arr;
如何使用此指针打印arr[2][2],在本例中为i。
我已经尝试过* (*(ptr+1)+2),就像我处理数组的方式一样,但没有奏效,所以任何人都可以帮助并告诉我在这种情况下如何处理指向数组的指针以打印元素[2][2]。
【问题讨论】:
-
避免在 C 中使用多维数组。考虑使用flexible array members 来实现自己的矩阵抽象数据类型,例如here
-
在使用字符串和固定大小的数组时要小心,您必须记住,三个字符的字符串确实需要 四个 字符的空间,以包含终止空字符 @ 987654329@.
-
请注意,
"sam"实际上需要 4 个字节,因为它包含字符串终止字符
标签: c multidimensional-array pointer-to-array