猿问
数组衰减为指针的异常?
数组衰减为指针的异常?
我在许多帖子中看到,“在大多数情况下,数组名称会衰减为指针”。
我能知道在什么情况下,数组名称不会衰减为指向其第一个元素的指针?
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+中,有一些附加规则,例如,当它通过引用传递时。
0
0
0
繁星coding
首先,在初始化时,它特别写着“字符串文字”。它根本没有提到“数组表达式”或“表达式”。因此,字符串字面语法恰好在两处使用:作为初始化的右侧,也用作表达式。这并不意味着初始化的右侧是表达式。另外,专门问到的关于“数组名称”的问题,而字符串文字不是数组名称,您不能将数组名称(或任何其他数组表达式,除了字符串文字)放在数组初始化的右侧。
0
0
0
随时随地看视频
慕课网APP
相关分类
C
typedef入门问题
1 回答
我要回答