首页 > 代码库 > 指针数组与数组指针
指针数组与数组指针
//理解数组指针与指针数组要从定义开始,对于优先级的理解
//对于形如 int* p[4],那么他就是个指针数组。因为先定义数组
//对于形如int (*p)[4],就是个数组指针,因为先定义指针。
#include <iostream>#include <sys/time.h>using namespace std;int main(){ int arr[4][4] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int *p[4]; //指针数组,[]优先级高于*。p是一个数组,里面存放了4个指向整型数据的指针 int (*q)[4]; //数组指针,()优先级高,说明q是一个指针,这个指针指向一个大小为4个元素的数组的首地址 for(int i = 0;i<4;i++) { for(int j = 0;j<4;j++) printf("%4d ",arr[i][j]); printf("\n"); } printf("\n"); q = arr; for(int i = 0;i<4;i++) { for(int j = 0;j<4;j++) { printf("%4d ",*(*(q+i)+j)); //对于数组指针来说,相当于二级指针? } printf("\n"); } printf("\n"); for(int i = 0;i<4;i++) p[i] = arr[i]; //指针数组,让指针数组里每一个元素对应每一行行开头的地址 for(int i = 0;i<4;i++) { for(int j = 0;j<4;j++) printf("%4d ",*(p[i]+j)); printf("\n"); } printf("\n");}
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。