C语言:指针数组

一、指针数组介绍

指针数组本质是数组,是一个存放指针的数组

代码如下:

arr1和arr2就是指针数组

cpp 复制代码
int main()
{
    int a = 1; int *pa = &a;
    int b = 2; int *pb = &b;
    int c = 3; int *pc = &c;
    int d = 4; int *pd = &d;
    int e = 5; int *pe = &e;

    int* arr1[5] = { &a,&b,&c,&d,&e };
    int* arr2[5] = { pa,pb,pc,pd,pe };

    return 0;
}

二、指针数组模拟二维数组

指针数组可以用来模拟二维数组:将多个数组的地址存放于指针数组中

下列代码模拟二维数组:1 2 3 4 5

2 3 4 5 6

3 4 5 6 7

注意:指针数组仅仅是模拟二维数组,但不是真正的二维数组,因为二维数组的内存是连续的,而指针数组模拟的二维数组在内存中内存并不连续

例如:int 型数组nums1,nums2,nums3是三个创建于不同地址的数组,并不连续

cpp 复制代码
int main()
{
    int nums1[5] = { 1,2,3,4,5 };
    int nums2[5] = { 2,3,4,5,6 };
    int nums3[5] = { 3,4,5,6,7 };

    int* arr[] = { nums1,nums2,nums3 };//存放数组名,即数组首元素地址

    printf("%d\n", arr[2][4]);//模拟二维数组,打印第3行第5列数字

    return 0;
}
相关推荐
冉卓电子9 小时前
MPC5604B/C eMIOS 高级定时器全解
c语言
社交怪人11 小时前
【三角形面积】信息学奥赛一本通C语言解法(题号2073)
c语言
社交怪人11 小时前
【球体体积】信息学奥赛一本通C语言解法(题号1030)
c语言·开发语言
legendary_16313 小时前
Type-C浪潮席卷小家电:SINK芯片如何成为快充高压的“心脏“
c语言·开发语言
我命由我1234515 小时前
Android Framework P4 - ServiceManager 进程
android·c语言·c++·visualstudio·android studio·android-studio·android runtime
叶子野格15 小时前
《C语言学习:编程例题》B
c语言·开发语言·c++·学习
cen__y15 小时前
Linux13(数据库)
linux·服务器·c语言·开发语言·数据库
小a彤16 小时前
atvoss:Vector 算子子程序模板库,让 Ascend C 开发效率提升 5 倍
android·c语言·数据库
bnmoel16 小时前
数据结构深度剖析二叉树・上篇:基础概念、结构特性、存储结构全解析
c语言·数据结构·二叉树·
AI科技星16 小时前
全域数学公理:32维超球体投影、微观曲率与霍奇猜想的几何化证明
c语言·开发语言·网络·量子计算·agi