![]() |
1
4
只是为了它是什么和不是什么。
不涉及指针。像这样的多维数组是…数组的数组。等等。在您的例子中,您有一个3个5个字符的数组。当你用typedefs时,它会变得更清晰。
不涉及任何指针。如果要访问这三个数组中的第一个数组,可以执行以下操作:
它会给你一个
让我们创建这个类型,看看它与上面的不同。创建它很简单,一旦获得基本的声明器:
D只是一个现有的另一个声明器。现在我们继续。你先说
现在,让我们用一个
我们必须插入括号,因为下标运算符
现在让我们做
很好,现在我们有了
当然,这是完全不同的:)您可以使用它来存储指向另一个数组的指针,该数组的类型是
我希望这个小练习向您展示了指针和数组之间的一些关系。干杯! |
![]() |
2
2
我看到你的代码有几个问题。首先(从上面复制):
在你的内部循环中,它看起来像你想要使用
其次,当初始化数组时,代码是 几乎 对的。下面是正确的版本:
(我删除了
您发布的第二个语法不正确(没有大括号的语法)。 |
![]() |
3
2
因为你在使用
编辑: 我不知道那篇教程有什么让人困惑的。它完全等同于您的代码,除了不打印数组,而是将每个元素设置为(row*column)(其中row和column都是一个基,因此是+1)。 |
![]() |
4
1
本教程中的图像是数据的一个很好的表示: alt text http://www.cplusplus.com/doc/tutorial/arrays/bidimensional_arrays3.gif
从示例中,嵌套的
|
![]() |
5
1
我谦卑地认为,像在您可能需要%d时使用%c这样的小错误并不是您真正想要得到的答案。您说您对数组有点困惑,还提到您希望将指针视为包含数组的数组的数组元素。你 数组定义中的最后一个逗号不是语法错误。从C99开始允许。 真正能澄清问题的是要知道数组不是指针。确实,数组名可以用作常量指针(指向第一个元素),指针可以像数组一样被索引。然而,这并不意味着数组和指针是相同的。他们不是。 你问你的程序中的符号“A”到底是什么。它是一个数组。内存布局可以可视化为三部分中的一条长线,但仍在一条连续的线上。然后用同样的方法把它们分成五部分。对一个元素寻址时,必须使用两个索引;首先是要对哪个五元素数组进行索引,然后是要对这个元素的哪个五元素数组进行索引。 内存布局不像行和列的网格。内存由一个标量寻址,所以它是线性的。指针算法可能是下一个你可以研究的问题,看看指针上的增量是如何工作的。 |
![]() |
6
1
您需要将第二个for循环改为引用“y”而不是“x”。 希望能有所帮助。 |
![]() |
7
0
你使用printf的方式不对。尝试:
我不确定您是要使用%c还是%d。如果要打印号码,请使用%d。如果要打印实际字符,请使用%c。 |
![]() |
8
0
是的,就是这样。尽管您也可以将其作为一组连续的15个字符进行操作。 按照惯例,大多数人会认为它代表了一个有3行5列的矩阵(我认为),但数据结构本身并没有要求这样做。您可以很容易地使用它来表示5行和3列。或者3个集合,每个集合包含5个元素,但彼此之间没有任何有意义的关系。 执行矩阵操作的特定库对此有一个约定。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 5 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 5 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 5 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 5 月前 |