为了账号安全,请及时绑定邮箱和手机立即绑定

数组衰减为指针的异常?

数组衰减为指针的异常?

C#
慕工程0101907 2019-12-18 18:13:47
数组衰减为指针的异常?我在许多帖子中看到,“在大多数情况下,数组名称会衰减为指针”。我能知道在什么情况下,数组名称不会衰减为指向其第一个元素的指针?
查看完整描述

2 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

好的。

在C99中有三个基本案例,即:

  1. 当这是&(地址-of)接线员。

  2. 当这是sizeof接线员。

  3. 当它是类型为字符串的文字时char [N + 1]或类型为宽字符串的文字。wchar_t [N + 1](N用于初始化数组的字符串的长度,如char str[] = "foo";wchar_t wstr[] = L"foo";.

此外,在C11中,新引入的alignof运算符也不允许其数组参数衰减为指针。

在C+中,有一些附加规则,例如,当它通过引用传递时。



查看完整回答
反对 回复 2019-12-19
?
手掌心

TA贡献1942条经验 获得超3个赞

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

查看完整回答
反对 回复 2019-12-19
  • 2 回答
  • 0 关注
  • 257 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信