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

本文详细解析了数组和指针的关系,通过实例演示了如何使用数组名作为指针,并探讨了指针作为数组访问方式的特性。文章还对比了不同访问方式的结果,最终总结了数组和指针之间的关键联系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组和指针是对好基友,既然是好基友,那么我们就来证明看看

  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才能把好基友区分开啊


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值