首页 > 解决方案 > 指向字符数组的指针

问题描述

所以我正在学习 C 并且对我正在学习的网站上的这个陈述感到有些困惑。

如果你有

char ch_arr[3][10] = {
                         "spike",
                         "tom",
                         "jerry"
                     };

它这么说。

ch_arr是指向 10 个字符的数组的指针或int(*)[10]

但是,这是什么意思int(*)[10],如果这是一个字符数组,为什么指针不是char类型呢?

在此先感谢,如果问题不好,我很抱歉,我正在努力提高提问的能力。

标签: c

解决方案


这是一个二维数组。每个字符串(例如“spike”)都是一个字符数组。这意味着它基本上是一个包含数组的数组。

char ch_arr[3][10] = {"spike", "tom", "jerry"};

ch_arr然后可以将二维数组转换为指针。在 C 和 C++ 中,数组到指针的转换在访问时自动应用于每个数组,因此指针指向第一个元素,char[10]在这种情况下属于类型。char(*)[10]因此,正如Keith Thompson在评论中指出的那样,指针是 type 。

关于您正在使用的网站......它包含一些错误,所以我会使用不同的来源。


推荐阅读