指针数组
int * p[2]
指针数组,顾名思义,指针的数组,是个数组,存放的是数据;
例如execv()历程中的一行代码: char * argv[] = {“hello”,NULL};
定义了一个存放 char * 类型元素的数组argv,并进行初始化;
argv[0] = 0x1234,是个指针,指向的是“hello”的首地址;
*argv[0] = “hello”;
argv[1]是个空指针,故而为NULL;
如果是 char *argc = “hello”;// 此为char型的指针,不是char型的变量
argc是个指针, * argc 就可以按照数据类型赋值,没啥了不起的!
argc是“h”的地址, *argc = “hello”
b = argc++ ; 后就指向“e”的地址, * b = “ello”
putchar(*argc);// 单个字符打印,内容为 “e”
数组指针
int (*p)[2]
数组指针,顾名思义,数组的指针,是个指针,指向一个n行两列的数组;
用法如下:
//定义一个执行n行2列的数组指针
int (*p)[2];
//定义一个三行两列的二维数组,并初始化
int b[3][2] = {{1, 2}, {3, 4}, {5, 6}};
//将数组b的首地址付给p
p = b;
//遍历数组b内容
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 2; j++){
cout << p[i][j];
}
}
结束
此篇小帆用于笔记整理,内容仅供参考,如有错误,望大佬指点