数组指针是指向数组首元素的地址的指针,其本质为指针(这个指针存放的是数组首地址的地址,相当于2级指针,这个指针不可移动);指针数组是数组元素为指针的数组,其本质为数组。数组指针只是一个指针变量,是C 语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间。指针数组是多个指针变量,以数组形式存在内存当中,占有多个指针的存储空间.
工具/原料
1
笔记本电脑
2
运行系统windows10
3
编程软件哈啊c
方法/步骤
1
打开啊哈c编译器
2
int a[3] = {1,2,3};//数组的指针,强调的是类型,数组的个数,偏移值是偏移了整个数组的大小
3
int (*p)[3]; p = a;//数组指针
4
int *p2; p2 = a;//指针数组
5
printf('数组的地址是%p\n',a); printf('数组的地址是%p\n',&a[0]); printf('数组的地址是%p\n',p); printf('数组的地址是%p\n',p2);
6
printf('==============区别来咯==============\n'); printf('p++的结果是:%p\n',++p); printf('p2++的结果是:%p\n',++p2);
7
运行程序
注意事项
1
指针数组可以作为函数的参量使用,使用方式与普通数组类似。 指针数组常适用于指向若干字符串,这样使字符串处理更加灵活方便。
2
本程序采用哈啊c编写,由于软件本身有bug,在重新编译运行时,要先把之前的运行窗口先关掉,不然会报错。
3
数组指针和指针数组在处理同一个二维数组时,数组指针的元素个数和指针数组的数组长度不相同,数组指针的元素个数和二维数组的列长度相同。 而指针数组的数组长度和二维数组的行长度相同。