码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-05-07 22:05:53      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

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

技术分享

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

标签:

原文地址:http://blog.csdn.net/persever/article/details/45567123

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!