多维数组下指针使用总结
来源:互联网 发布:淘宝上宝贝卖点怎么写 编辑:程序博客网 时间:2024/05/01 07:23
===============================================================
本文总结以下四种形式指针的用法:
第一种
int (*pi)[MAX]; //pi指向含有MAX个int元素的数组
使用如下,可用于处理二位数组:
#include <stdio.h>#define MAX 3int main(void){int arrayInt[][MAX] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};int (*pi)[MAX] = arrayInt;//以下输出arrayInt数组的第2行for (int i = 0; i < MAX; i++)printf("%d ", *(*(pi + 1) + i));putchar('\n');return 0;}
第二种
int *pi[MAX]; //由MAX个指向 int 的指针组成的数组,[]优先级高于*
使用如下:
#include <stdio.h>#define MAX 3int main(void){int arrayInt1[MAX] = { 1, 2, 3 };int arrayInt2[MAX] = { 4, 5, 6 };int * pi[MAX]; //包含三个指向int的指针pi[0] = arrayInt1; //令其中第1个指针pi[0]指向arrayInt1pi[1] = arrayInt2; //令其中第2个指针pi[1]指向arrayInt2//*(*(pi + 0) + 1) <==> pi[0][1] 两者等价for (int i = 0; i < MAX; i++)printf("%d ", *(*(pi + 0) + i ));putchar('\n');for (int i = 0; i < MAX; i++)printf("%d ", pi[1][i]);putchar('\n');return 0;}
第三种
char *ps[MAX]; //由MAX个指向char 的指针组成的数组,同样地[]优先级高于*
使用如下,可用于处理多个字符串数组:
#include <stdio.h>#define MAX 3int main(void){char *ps[MAX] = {"I'm","learning","C language"};for (int i = 0; i < MAX; i++)puts(ps[i]); //第i行字符串的首地址即为ps[i]putchar('\n');return 0;}
第四种
char (*ps)[MAX]; //指向含有MAX个字符元素的字符串数组
使用如下,可用来处理字符数组,不常用:
<pre name="code" class="cpp">#include <stdio.h>#define MAX 3int main(void){char arrayChar[][MAX] = {{ 'a', 'b', 'c' },{ 'd', 'e', 'f' },{ 'g', 'r', 'y' }};char(*ps)[MAX] = arrayChar;//输出arrayChar字符数组的第2行for (int i = 0; i < MAX; i++)printf("%c ", *(*(ps + 1) + i));putchar('\n');return 0;}
总之,C指针要想熟练掌握还得多用。
0 0
- 多维数组下指针使用总结
- c 多维数组 指针关系总结
- 多维数组和多维指针
- 多维数组 和 多维指针
- 多维数组和多维指针
- 多维数组和多维指针
- 多维数组与多维指针
- 多维数组和多维指针
- 多维数组和多维指针
- 数组与指针--多维数组与多重指针使用注意事项
- 主题四 指针和数组(下)----26.多维数组与多维指针
- 多维数组和指针
- 指针和多维数组
- 多维数组和指针
- 多维数组与指针
- 指针和多维数组
- 指针与多维数组
- 多维数组和指针
- C#获取视频流
- HttpWebRequest的GetResponse或GetRequestStream 超时决办法
- Material design学习笔记-CoordinatorLayout,NestedScrollView,AppBarLayout,CollapsingToolbarLayout学习
- (转)总结一下最近关于domain object以及相关的讨论(来自JavaEye,作者robin)
- 取消window下应用报错后弹出的对话框程序已停止要求关闭程序对话框
- 多维数组下指针使用总结
- Android官方数据绑定框架DataBinding(一)
- Struts2的配置文件
- 安卓1113_版本介绍和控制 SVN GIT
- hdu2992 Hotel booking (floyd+spfa+map)
- vi + cscope使用
- jni编译时错误在console里一闪而过
- ProgressDialog详解
- 运行QEMU时,出现错误:(process:8559): GLib-WARNING...gmem.c:483: custom memory allocation vtable not support