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

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 <stdio.h>	

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;
}

array

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值