![]() |
1
9
是的,你可以这么说-
数组下标访问
与指针访问相同
从…起 6.5.2.1p2 C11标准N1570
这
绝对不是
应该给您留下数组是指针的印象。有趣的是,当你申请时
数组对象是另一回事——有时数组不会衰减为指针。它们不是语法上的糖——你可以考虑一个例子-
运行此命令,我将了解与您的问题更相关的内容。数组不能用数组本身以外的东西来实现。数组访问与指针解引用相同,但这并不意味着指针取数组的位置,反之亦然。 C编程的外卖键或红色药丸:
顺便说一下,如果
数组用作的操作数时,不会转换为指针
|
![]() |
2
4
对
根据法比奥·图拉蒂的评论: 看见 "Why is a[5] == 5[a]" 了解更多详细信息。 |
![]() |
3
0
是的,您可以使用arr[i]/*(arr+i)访问数组元素。 甚至可以对数组指针使用增量操作。 *ptr=&arr, ptr公司++ 这意味着每次向数组指针添加整数或增量时,指针都会向上一个指针添加(数据类型的大小)*i。 |
![]() |
4
0
严格地说,数组不是指针的语法糖。根据定义,“句法糖”是一种语言结构,它可以让你写得更短/更清晰,相当于其他一些语言结构。指针和数组的情况不同。指针是包含某个值的内存地址的变量。不同的是,数组是包含这些值本身的变量。然而,C的语法是以某种方式构建的,它允许您将指针视为数组第一个元素的地址,并对其应用索引运算符。但我不会说这是语法糖,这是语言的基本语法。 |
![]() |
5
-1
绝对不是!要了解这一点,只需在示例中用指针替换数组即可:
这可以很好地编译,但它是未定义的行为。它不能保证工作。事实上,有 没有什么 这个程序可能会这样做,这将被视为编译器中的一个bug。 数组是数组;包含数据的类型。指针指向数据所在的位置。指针不包含实际数据,而数组包含实际数据。 有 一些 数组名称的行为方式与指针相同的情况。这并不能使两者完全相同。 例如,请查看以下内容:
|
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |