指针数组与数组指针的本质
来源:互联网 发布:域名不合法是什么意思 编辑:程序博客网 时间:2024/05/22 16:56
数组指针与指针数组有时候不好区分,越想越乱,所以写一篇文章来弄清他们的本质,只要知道了本质,那么用起来就很轻松了
指针数组: 是一个数组,元素为指针;
定义
char* a[4]={"aaaaa","bbbbb","ccccc","ddddd"};
a[i]存储的是字符串的首地址,例如a[1]存储的是字符串“bbbbb”的首地址
printf("%s"a[1]); //输出bbbbb
printf("%d,%d"a[0],a[1]);//输出的是两个数字,相差4,(内存地址)
可以理解成这样
char* a0="aaaaa";
char* a1="bbbbb";
char* a2="ccccc";
char* a[3];
a[0]=a0;
a[1]=a1;
a[2]=a2;
数组指针: 本质是指针
定义:
char (*p)[4]; //必须这样声明,有的地方说数字可以任意写,只会警告,不会报错,反正我的编译器是报错。
char a[4]="123";
p=&a; //指向数组a的首地址;
printf("%s",*p); //输出123
printf("%c",(*p)[1]); //输出2与 ("%c",a[1])相同;
所以我们可以把
*p看作数组名a,这不是和一般的指针一样吗?
注意:符号[]比符号*的优先级要高,所以要加括号————(*p)[i];
(*p)[i]这种写法并不规范,这样写知识为了让人明白数组指针的本质。
1 0
- 指针数组与数组指针的本质
- 数组和指针的本质区别
- 指针数组与数组指针的使用
- 数组指针与指针数组的区别
- 数组指针与数组元素的指针
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 指针数组与数组指针的认识
- 指针数组 与 数组指针 的分析
- 指针数组与数组指针的区别
- 指针数组与数组指针的区别
- 二维数组的指针与指针数组
- 指针数组与数组指针的区别
- 指针数组与数组指针的差别
- 【POJ 2187】 Beauty Contest (凸包-Graham扫描算法)
- Mybatis SQL拦截器实现
- USB系统设备模型建立流程 (不错)
- SQL语句的各个关键字的解析过程详细总结
- Android布局详解(一)
- 指针数组与数组指针的本质
- mina高并发短连接报java.io.IOException: Too many open files
- com.sun.xml.internal.messaging.saaj.SOAPException
- Linux 统计网络流量备忘
- cocos2dx 简易摇杆demo
- [LeedCode OJ]#88 Merge Sorted Array
- leetcode: Same Tree
- windows mobile 上文件压缩与解压缩(使用ICSharpCode.SharpZipLib.Zip)
- cgal配置以及一些资料