首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

百思不得其解的有关问题,

2012-09-12 
百思不得其解的问题,求助!在书上看到这样两个等式:1.表达式1[表达式2]表达式2[表达式1](a[i]i[a])2.*[(

百思不得其解的问题,求助!
在书上看到这样两个等式:
  1.表达式1[表达式2]=表达式2[表达式1](a[i]=i[a])
   
  2.*[(表达式1)+(表达式2)]=表达式1[表达式2](*(a+i)=a[i])

书上也没怎么解释(本人在校初学C,想不明白),最后编个程序试了一下还真的是这样:
[code=C/C++][/code]
#include <stdio.h>
#include<stdlib.h>

int main(void)
{
  int i[1]={7};
  
  printf("i[0]=%d \n0[i]=%d\n",i[0],0[i]);

  system("PAUSE");

  return 0;
}
[code=C/C++][/code]
i[0]=7
0[i]=7
求大牛指点,原理是什么?能仔细分析一下吗?

[解决办法]
C语言在解析数组的时候,本质上是把它当作指针来寻址,数组名相当于常量指针,下标相当于偏移,所以:
a[i] = *(a + i) = *( i + a) = i[a]
[解决办法]
引用:
"123"[1] == *("123" + 1) == *( 1 + "123") == 1["123"]

热点排行