设为首页 加入收藏

TOP

C语言数组a[i]==i[a]
2015-07-16 12:04:16 来源: 作者: 【 】 浏览:89
Tags:语言

The C standard defines the [] operator as follows:

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

Therefore a[5] will eva luate to:

*(a + 5)
and 5[a] will eva luate 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;
}
  

array

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇OC教程5-委托delegate模式回调 下一篇ObjectC 实现自定义Event

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: