gpt4 book ai didi

c - 括号 [] 运算符是否只能使用一次?

转载 作者:太空狗 更新时间:2023-10-29 15:11:55 25 4
gpt4 key购买 nike

我最初认为它对指针和数组有不同的用途。在前一种情况下,它将括号中的任何内容添加到指针,然后取消引用总和;在后一种情况下,它只会产生数组的第 i 个元素。

然后我意识到数组变量返回指向第一个元素的指针,因此运算符在每种情况下都做同样的事情:偏移和取消引用。

方括号 [] 运算符在 C 语言中真的只有一次吗?

最佳答案

[] 称为数组下标运算符,但在句法上它用于指针。在此用法(以及许多其他用法)中,数组被转换为指向第一个元素的指针。所以,是的,[] 对于数组和指针是一样的。

C11 §6.5.2.1 Array subscripting

Constraints

One of the expressions shall have type ‘‘pointer to complete object type’’, the other expression shall have integer type, and the result has type ‘‘type’’.

Semantics

A postfix expression followed by an expression in square brackets [] is a subscripted designation of an element of an array object. The definition of the subscript operator [] is that E1[E2] is identical to (*((E1)+(E2))). Because of the conversion rules that apply to the binary + operator, if E1 is an array object (equivalently, a pointer to the initial element of an array object) and E2 is an integer, E1[E2] designates the E2-th element of E1 (counting from zero).

关于c - 括号 [] 运算符是否只能使用一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19782111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com