c语言a i,C语言数组a[i]==i[a]

本文探讨了C语言中数组与指针的密切关系,通过实例展示了`a[5]`与`*(a+5)`等价性的原理。在C语言中,数组名实际上是一个指向其首元素的指针,因此`a[5]`表示从地址`a`开始的第五个元素的值,而`5[a]`则等同于`*(5+a)`,同样访问到这个元素。在提供的代码示例中,验证了这一概念。
摘要由CSDN通过智能技术生成

The C standard defines the [] operator as follows:

a[b] == *(a + b)

Therefore a[5] will evaluate to:

*(a + 5)

and 5[a] will evaluate to:

*(5 + a)

and from elementary school math we know those are equal.

This is the direct artifact of arrays behaving as pointers, “a” is a memory address. “a[5]” is the value that’s 5 elements further from “a”. The address of this element is “a + 5″. This is equal to offset “a” from “5” elements at the beginning of the address space (5 + a).

#include

int main()

{

int a[10]={9,2,3,4,7,6,5,8,1,10};

//a[b]=*(a+b)

printf("%d\n",a[5]);

printf("%d\n",*(a+5));

printf("%d\n",*(5+a));

printf("%d\n",5[a]);

return 0;

}

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值