array_name和&array_name的异同
来源:互联网 发布:阿里云管理终端 卡死 编辑:程序博客网 时间:2024/05/03 14:41
看到http://blog.csdn.net/zhghost/article/details/5286271关于这两个的介绍,以前没注意到这个问题。
char a[MAX]; /*array of MAX characters*/
char *p = a; /*p为指向数组的指针*/
char *pa = &a; /*该语句是不正确的,pa的类型为'char *',而&a的类型为'char (*)[MAX]’*/
char (*pb)[MAX] = &a; /*该语句是正确的,pb的类型为'char (*)[MAX]'*/
#include<stdio.h>#define ARRAY_LEN 6int main(){ char a[ARRAY_LEN]={'a','b','c','d','e','\0'}; char *p=a; char *pa=&a; char (*point_to_str)[ARRAY_LEN]; point_to_str=&a; printf("%p\n%p\n%p\n%p\n%p\n%p\n%p\n",a,&a,&a[5],p,&pa, &point_to_str); printf("\n\n %p %p %p %p\n",a,&a[0],a+1,&a+1); printf("%s\n%s\n", p, point_to_str);}0x7fff1c1107b0
0x7fff1c1107b0
0x7fff1c1107b5
0x7fff1c1107b0
0x7fff1c1107a8
0x7fff1c1107a0
0x400665
0x7fff1c1107b0 0x7fff1c1107b0 0x7fff1c1107b1 0x7fff1c1107b6
a和&a的值是一样的,但是类型不一样,一个是char的指针 char*,一个是整个数组的指针char (*)[ARRAY_LEN]。可以用+1体现不一样之处
&a[0]+1 == (int)(&a[0]) + sizeof(a[0])
&a+1 == (int)(&a) + sizeof(a)
0 0
- array_name和&array_name的异同
- array_name和&array_name的异同
- array_name和&array_name的异同
- &和&&的异同
- NandFlash和NorFlash的异同
- gcc和MinGW的异同
- Struts和JSF的异同
- struct 和 class的异同?
- GridView和DataGrid的异同
- GridView和DataGrid的异同
- 口罩和胸罩的异同
- 校内和海内的异同
- .bashrc和profile的异同
- GridView和DataGrid的异同
- ADD_APPLICATION_MENUITEM()和ADD_APPLICATION_MENUITEM2()的异同
- MoveWindow和SetWindosPos的异同
- NandFlash和NorFlash的异同
- class和struct 的异同
- 【SSH】——Hibernate三种状态之间的转化
- 随机森林和GBDT的学习
- Android开发之测试
- kettle参数、变量详细讲解
- Apache+Tomcat集群配置
- array_name和&array_name的异同
- 伪静态是什么?伪静态与普通html静态网页区别?
- nutz 结合QueryResult,Record 自定义分页查询,不构建pojo 整合
- 基于easyui的CMS系统的小结
- 机器人路径规划_粒子群算法
- mysql批量修改某一字段 -replace函数
- 1154: 又是取石子
- 关于java代码中的位运算的使用
- 遗传算法在走迷宫游戏中的应用