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

来源:互联网 发布:java定义日期变量 编辑:程序博客网 时间:2024/06/05 07:53

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
原创粉丝点击