C 语言中的好基友 数组和指针之一
2015-08-04 10:52
260 查看
数组和指针是对好基友,既然是好基友,那么我们就来证明看看
运行结果全部正确!
结论(仅限于以上一维数组):
1)数组名在表达式中就是指针,指针类型就是数组的单个元素
2)指针也可以想象为数组名,且能够用下标"[]"来访问
3)第一条结论的例外情况,数组名在面对sizeof这个玩意的时候似乎显示出了他原来的本性,原来只有sizeof才能把好基友区分开啊
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才能把好基友区分开啊
相关文章推荐
- Android--Selector、shape详解 (
- ACM常用算法
- gluPerspective
- HDU5324 cqd分治
- 关于部署问题
- 浮点数在计算机中存储方式
- 南邮 OJ 1090 Rock, Paper, Scissors
- crontab 定时任务没有执行
- java动态数组
- Bloodsucker
- quick-cocos2d-x数据存储之GameState
- svn配置启动方式
- IO流
- 列表属性list-style-type、图像符号list-style-image、列表缩进list-style-position
- 如何从本地把项目上传到github
- vim粘贴代码时缩进混乱
- android手机出现sqlite3 not found的解决方法
- 类加载机制详解(有条理)
- Bootstrap中的Carousel插件的图片滚动时间间隔的设置
- Https协议相关