您的位置:首页 > 其它

C 语言中的好基友 数组和指针之一

2015-08-04 10:52 260 查看
数组和指针是对好基友,既然是好基友,那么我们就来证明看看

  int b[8]= {0,1,2,3,4,};
  printf("b[0]=%d \n",b[0]);
  printf("b[1]=%d \n",b[1]);
  printf("b[2]=%d \n",b[2]);
  printf("b[0]=%d \n",*b);  //直接当指针用啦
  printf("b[0]=%d \n",*(b+0));//看看后面的结果你就知道其实指针类型是int
  printf("b[1]=%d \n",*(b+1));
  printf("b[2]=%d \n",*(b+2));
  int *bp;
  bp = b;   //数组名就是指针啊,编译器没有任何告警
  printf("b[0]=%d \n",*bp);
  printf("b[0]=%d \n",*(bp+0));
  printf("b[1]=%d \n",*(bp+1));
  printf("b[2]=%d \n",*(bp+2));
  printf("b[0]=%d \n",bp[0]);//这里直接用数组小标来访问,效果一样一样的,指针名也可想象为数组名用
  printf("b[1]=%d \n",bp[1]);
  printf("b[2]=%d \n",bp[2]);
  printf("size of int is %d\n",sizeof(int));
  printf("size of b %d \n",sizeof(b));
  printf("size of bp %d \n",sizeof(bp));


运行结果全部正确!

b[0]=0
b[1]=1
b[2]=2
b[0]=0
b[0]=0
b[1]=1
b[2]=2
b[0]=0
b[0]=0
b[1]=1
b[2]=2
b[0]=0
b[1]=1
b[2]=2
size of int is 4
size of b 32
size of bp 4


结论(仅限于以上一维数组):

1)数组名在表达式中就是指针,指针类型就是数组的单个元素

2)指针也可以想象为数组名,且能够用下标"[]"来访问

3)第一条结论的例外情况,数组名在面对sizeof这个玩意的时候似乎显示出了他原来的本性,原来只有sizeof才能把好基友区分开啊
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: