数组衰减为指针的异常?

数组衰减为指针的异常?我在许多帖子中看到,“在大多数情况下,数组名称会衰减为指针”。
我能知道在什么情况下,数组名称不会衰减为指向其第一个元素的指针?

Cats萌萌
浏览 482回答 2
2回答

江户川乱折腾

好的。在C99中有三个基本案例,即:当这是&(地址-of)接线员。当这是sizeof接线员。当它是类型为字符串的文字时char [N + 1]或类型为宽字符串的文字。wchar_t [N + 1](N用于初始化数组的字符串的长度,如char str[] = "foo";或wchar_t wstr[] = L"foo";.此外,在C11中,新引入的alignof运算符也不允许其数组参数衰减为指针。在C+中,有一些附加规则,例如,当它通过引用传递时。

繁星coding

首先,在初始化时,它特别写着“字符串文字”。它根本没有提到“数组表达式”或“表达式”。因此,字符串字面语法恰好在两处使用:作为初始化的右侧,也用作表达式。这并不意味着初始化的右侧是表达式。另外,专门问到的关于“数组名称”的问题,而字符串文字不是数组名称,您不能将数组名称(或任何其他数组表达式,除了字符串文字)放在数组初始化的右侧。
打开App,查看更多内容
随时随地看视频慕课网APP