首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言进阶】指针数组 —— 数组指针

鸽芷咕:个人主页 个人专栏:《C语言进阶篇》《C语言初阶篇》 ⛺️生活的理想,就是为了理想的生活!...各位宝子们大家好啊,前面我们已经指针大部分内容学完了,今天就大家带来数组指针or指针数组! ⛳️很多说这俩名字不是差不多嘛?那么肯定是一个意思,诶这里可不敢理解一样!...数组指针or指针数组是有明显不一样的下面我们就来看看 本期文章收录在《C语言初阶篇》,大家有兴趣可以看看呐! ⛺️ 欢迎铁汁们 ✔️ 点赞 收藏 ⭐留言 !...那么数组指针该怎么定义的 其实是这样的 int (*p2)[10];,这就是数组指针的定义 其实可以 (*p2)里面的 * 说明了 p2是个指针变量 而 int ()[10] 则说明了 p2 指向的是个数组...VS数组名   ⛳️ 数组指针的定义我们知道怎么定义了那么,该如何数组指针符值呢?

14910

C语言指针(二)数组指针指针数组

数组指针/指针数组 数组指针是: ❝指向数组指针,它本质上还是一个指针,类比普通指针指针数组是: ❝一个存放指针数组,本质上是数组,就如经常说的字符数组,整型数组一样 ❞ 2.1 数组的理解...所以当你编译器看一个数组时,他并不是像人一样能看到这个数组的全貌,他只能看到这个数组的第一个元素,并且知道这个元素的内存地址 看看这串代码: #include int main(...arr[1] => *(&arr +1) 先让内存地址加下标,再通过指针获取到元素 ❞ 2.3 数组指针 数组指针就是指向数组第一个元素的指针,相信认真看了2.1和2.2的你能够很快理解 定义一个数组指针...指针数组」,顾名思义,他是个数组,就如经常说的字符数组,整型数组一样,只不过指针数组的定义方法和存储对象也有亿点点不一样。...定义一个指针数组(以整型为例) int *pArr[10]; // 定义一个指针数组 「要注意与数组指针的定义区别开」 数组指针的定义: int (*arrP)[10]; 一定要注意这个括号,这涉及到了

1.3K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    C 语言数组 ( 数组指针 | 数组指针定义 | 直接定义 数组指针 )

    文章目录 总结 一、直接定义 数组指针 二、完整代码示例 总结 int (*p)[3] = NULL; 一、直接定义 数组指针 ---- 直接定义 数组指针 , 首先 , 定义一个普通数组 ,...之后的 数组指针 指向该数组 , int array2[3] = {0}; 然后 , 直接定义数组类型变量 , int (*p)[3] = NULL; 最后 , 将 array2 变量地址赋值该...数组指针类型 变量 , 指针指向的数据类型为 int[3] 数组类型的变量 array2 ; ArrayPointer p = NULL; p = &array2; 验证上述 定义的数组指针..., 数组元素是指针 (作为参考) char *array = {"12", "ab", "34"}; // 数组指针 , 使用指针变量指向数组 // 首先 , 定义一个普通数组..., 将 array2 变量地址赋值数组指针类型 变量 // 指针指向的数据类型为 int[3] 数组类型的变量 array2 p = &array2; // 为数组赋值

    3.4K20

    C 语言数组 ( 数组指针 | 数组指针定义 | 使用 数组指针类型 定义数组指针 )

    文章目录 总结 一、使用 数组指针类型 定义数组指针 二、完整代码示例 总结 // 首先 , 定义 数组指针类型 别名 typedef int(*ArrayPointer)[3];...// 然后 , 声明一个 数组指针类型 变量 ArrayPointer p = NULL; 一、使用 数组指针类型 定义数组指针 ---- 使用 数组指针类型 定义数组指针 , 首先 , 使用...[3] = {0}; 最后 , 声明一个 数组指针类型 变量 , 将 array2 变量地址赋值数组指针类型 变量 , 指针指向的数据类型为 int[3] 数组类型的变量 array2 ;..., 数组元素是指针 (作为参考) char *array = {"12", "ab", "34"}; // 数组指针 , 使用指针变量指向数组 // 使用 数组指针类型 定义数组指针...int array2[3] = {0}; // 最后 , 声明一个 数组指针类型 变量 // 将 array2 变量地址赋值数组指针类型 变量 // 指针指向的数据类型为

    3K10

    C语言C语言数组指针

    ---- 友情提醒:本文可能是全csdn最详细的指针内容了,希望你能用心读下去 前言 接下来的讲解部分是指针的进阶,包含多种指针以及对应的数组,这部分章节对我们来说很重要,也是c语言中的重点模块儿,重要性不言而喻...(c/c++会把常量字符串储存到单独的一个内存区域中) 当这两个指针指向同一个常量字符串时,实际上就是指向同一块儿地址**(指针就是地址,地址就是指针)** 2.数组指针 2.1数组指针的定义 1.数组指针嘛...哈哈哈,但指针使用数组指针的场景其实不是这样的,这里只不过想用代码的样子大家呈现一下,这个数组指针的使用方法大概是什么样子的 下面的代码再较高级呈现一下,数组指针的使用形式(坚持读下去,相信你自己)...函数 代码4 将函数指针数组的地址放到指向函数指针数组指针当中,**这里的指针是比较难写的,如果直接写不好写的话,我们可以像下面这样,将函数指针数组数组名替换为(指针)即可 ,这样来写,就不怕我们这个指针写错了...,他其实就是方便在当我们调用多个函数时,省去我们重复写调用函数的代码,如果有函数指针数组的话,我们直接访问函数指针数组的元素内容就可以了,然后向我们得到的函数名传相应的参数就可以了 下面大家做一个功能较完整的函数指针数组的使用吧

    64.7K37

    C 语言数组 ( 数组指针 | 数组指针定义 | 使用 数组类型* 定义数组指针 )

    * 定义数组指针 ---- 数组类型指针 就是 定义一个指针 , 指向数组首地址 ; 使用 数组类型* 定义数组指针 , 首先 , 定义数组类型 别名 , typedef int(ArrayType...)[3]; 然后 , 使用别名类型 , 声明数组变量 , ArrayType array2 = {0}; 最后 , 声明一个指针 , 将 array2 变量地址赋值指针 , 指针指向的数据类型为...---- 代码示例 : #include #include #include int main() { // 指针数组 , 数组元素是指针...char *array = {"12", "ab", "34"}; // 数组指针 , 使用指针变量指向数组 // 使用 数组别名 定义数组指针 // 首先 ,...// 最后 , 声明一个指针 , 将 array2 变量地址赋值指针 // 指针指向的数据类型为 int[3] 数组类型的变量 array2 ArrayType *p = NULL;

    3.4K20

    C语言指针&&二级指针&&数组指针&&指针数组详解

    经过仔细的计算和权衡,我们发现一个字节一个对应的地址是比较合适的 对于32位的机器,假设有32根地址线,那么假设每根地址线在寻址的时候产生高电平(高电压)和低电平(低电压),就是1或者0 2^32字节的大小等于...当有这样的代码 int num = 10; p = # 要将&num(num)的地址保存到 p 中,我们就知道 p 是一个指针变量 我们指针变量相应的类型: char* pc = NULL;...里了,但是,本质是字符串 abcdef的首字符的地址放到了pstr中 上面代码的意思是一个常量字符串的首字符 a 的地址存放到指针变量 pstr 中 注意: C/C++会把常量字符串存储到单独的一个内存区域...}; int (*p)[10] = &arr;//数组arr的地址赋值数组指针变量p //但是我们一般很少这样写代码 return 0; } 数组指针也是指针,存放的是数组的地址...内部,计算的是数组的大小,单位是字节 &数组名,这里的数组名表示整个数组,取出的是数组的地址,数组的地址和数组首元素的地址,值是一样的,但是类型和意义不一样 既然可以数组名当成地址存放到一个指针中,我们就可以使用指针来访问数组的元素

    56710

    C语言 | 指针引用数组

    C语言数组元素的指针 指针变量既可以指向变量,也可以指向数组元素,所谓数组元素的指针就是数组元素的地址。 引用数组元素可以用下标法,也可以用指针法,即通过指向数组元素的指针找到所需的元素。...在C语言中,数组名代表数组中首元素的地址,使用指针法能使目标程序质量高,因为其占内存少,运行速度快。 C语言在引用数组元素时指针的运算 在一定条件下允许对指针进行加和减的运算。...C语言数组名作函数参数 C语言调用函数时虚实结合的方法都是采用“值传递”方式,当用变量名作为函数参数时传递的是变量的值,当用数组名作为函数参数时。...C语言通过指针引用多维数组 1、多维数组元素的地址 性质与二维数组差不多,但需要注意的是,多维数组由于分配内存情况不同,所显示的地址可能是不同的。...以上,如果你看了觉得对你有所帮助,就小林点个赞,分享身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线    C语言开发工具 VC6.0、Devc++、VS2019使用教程

    1.9K20

    C语言 | 指针数组与多重指针

    C语言什么是指针数组C语言中一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都存放一个地址,相当于一个指针变量。...C语言指向指针数据的指针 //定义一个指向指针数据的指针变量: char **point; point的前面有两个*号。...C语言指针数组作main函数的参数 main函数的第一行一般写成 int main() 或 int main(void) 括号中是空的或void,表示main函数没有参数,调用main函数时不必给出实参...以上,如果你看了觉得对你有所帮助,就小林点个赞,分享身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线    C语言开发工具 VC6.0、Devc++、VS2019使用教程...100道C语言源码案例请去公众号:C语言入门到精通

    1.8K20

    C语言指针进阶:字符指针&&数组指针&&函数指针

    ✨作者:@平凡的人1 ✨专栏:《C语言从0到1》 ✨一句话:凡是过往,皆为序章 ✨说明: 过去无可挽回, 未来可以改变 ---- 感谢您的点赞与关注,同时欢迎各位有空来访我的平凡舍 --...;//这里是一个字符串放到pstr指针变量里了吗? printf("%s\n", pstr); return 0; } 不是,这里本质是字符串 hello world....C/C++会把常量字符串存储到单独的一个内存区域,当指针指向同一个字符串的时候,他们实际会指向同一块内存。但是用相同的常量字符串去初始化不同的数组的时候就会开辟出不同的内存块。...#include int main() { int arr[10] = {1,2,3,4,5,6,7,8,9,0}; int (*p)[10] = &arr;//数组...arr的地址赋值数组指针变量p //但是我们一般很少这样写代码 return 0; } 下面。

    2.8K20

    详解C语言中的数组指针指针数组

    ·详解数组指针指针数组 ·数组指针 一、区分 首先我们需要了解什么是数组指针以及什么是指针数组,如下图: int *p[5]; int (*p)[5]; 数组指针的意思即为通过指针引用数组,p先和*结合...二、数组元素的指针 1.定义 指针变量既然可以指向变量,同样的,也能指向数组元素,因此,数组元素的指针就是数组元素的地址。...2.运算 由于指针指向的是一个地址,因此数组指针也同样可以进行相关运算;例如指针的加减可以实现指针指向数组上一个或者下一个元素的功能。这边需要说明,数组指针中进行乘法和除法是没有意义的。...因此我们可以得出指针数组的定义。指针数组:一个数组的元素均为指针类型数据,称为指针数组。...假设我们定义一个数组,各个元素指向不同的字符串,如下图: 上图所示,我们定义一个指针数组arr,然后各字符串的地址赋各个元素,即arr[0]和arr[1]。

    2.9K20

    指针数组数组指针的区别详细介绍【C语言】【指针

    指针数组数组指针C语言中常用的数据结构,它们可以在处理内存动态分配、多维数组、函数指针等方面提供便利。...虽然指针数组数组指针的名字十分相似,但是它们是两个截然不同的概念,下面进行详细介绍: 一、指针数组 指针数组指针数组是一个数组,其中的每个元素都是指针类型。...= 2, c = 3, d = 4, e = 5; ptrArray[0] = &a; ptrArray[1] = &b; ptrArray[2] = &c; ptrArray[3] = &d...数组指针常用于以下情况: 访问多维数组:可以使用数组指针来访问多维数组中的元素。 动态内存分配:数组指针可以用于动态分配内存。 函数指针:可以使用数组指针来定义函数指针类型。...我们将数组 arr 的地址赋值指针 ptr,然后使用指针来访问数组中的元素。

    14410

    8.6 C语言指针数组和多重指针

    01什么是指针数组 1、一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都存放一个地址,相当于一个指针变量。...2、一般形式 类型名 *数组名[数组长度]; 类型中应包括符合*,如int *表示是指向整数数据的指针类型。...然后再和p前面的*结合,*表示此数组指针类型的,每个数组元素都可以指向一个整型变量。 02指向指针数据的指针 1、在了解了指针数组的基础上,需要了解指向指针数据的指针变量,简称指向指针指针。...03指针数组作main函数的参数 1、main函数的第一行一般写成int main()或int main(void),括号中是空的或有void,表示main函数没有参数,调用main函数时不必给出实参...3、命令行的一般形式 命令名 参数1 参数2……参数n C语言 | 递归求年龄 更多案例可以go公众号:C语言入门到精通

    9922825

    C语言指针数组数组指针的区别

    指针数组:首先它是一个数组数组的元素都是指针数组占多少个字节由数组本身决定。它是“储存指针数组”的简称。 数组指针:首先它是一个指针,它指向一个数组。...p1 先与“[]”结合,构成一个数组的定义,数组名为p1,int *修饰的是数组的内容,即数组的每个元素。那现在我们清楚,这是一个数组,其包含10 个指向int 类型数据的指针,即指针数组。...至于p2 就更好理解了,在这里“()”的优先级比“[]”高,“*”号和p2 构成一个指针的定义,指针变量名为p2,int 修饰的是数组的内容,即数组的每个元素。数组在这里并没有名字,是个匿名数组。...那现在我们清楚p2 是一个指针,它指向一个包含10 个int 类型数据的数组,即数组指针。我们可以借助下面的图加深理解: ?...本文实验以外的部分转载自:http://c.biancheng.net/cpp/html/476.html

    1.9K60

    【重拾C语言】七、指针(二)指针数组(用指针标识数组、多维数组指针数组指针指针数组

    前言 在C语言中,指针数组之间存在着密切的关系,指针可以用来标识和操作数组元素 数组名是数组的首地址,即a[0]的地址(常量); 指针的值也是一个地址(变量) 如果一个指针p指向数组a的首地址(即指向...int a[10]; int *p=a; //int *p=&a[0]; 七、指针 7.1~3 指针与变量、指针操作、指向指针指针 【重拾C语言】七、指针(一)指针与变量、指针操作、指向指针指针-CSDN...指针变量的当前值 指针变量的当前值是指针所指向的内存地址。指针变量存储了一个地址值,该地址指向内存中的某个位置。通过解引用指针,可以访问或修改指针所指向地址处存储的值。 c....如上述int (*ptr)[4]: int (*ptr)[4]; // 声明一个指向包含4个int类型元素的数组指针 c. 对比总结 指针数组是一个数组,其中的每个元素都是指针类型。...指针数组的大小是数组的大小,而数组指针指向的数组的大小是指针指向的数组的大小。

    12610

    C 语言指针数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    【嵌入式开发】C语言 指针数组 多维数组 2.【嵌入式开发】C语言 命令行参数 函数指针 gdb调试 3.【嵌入式开发】C语言 结构体相关 的 函数 指针 数组 4....【C语言C 语言 关键字分析 ( 属性关键字 | 常量关键字 | 结构体关键字 | 联合体关键字 | 枚举关键字 | 命名关键字 | 杂项关键字) 6....【C 语言指针数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读) 文章目录...: C语言中没有二维数组改变, 编译器 都按照一维数组来处理, 数组的大小在编译时就确定了 ; 2.二维数组由来 : C 语言中的数组元素可以是任何类型, 即可以是一维数组, 这样就产生了二维数组...数组参数退化为指针参数的意义 ( 1 ) 数组参数退化的相关概念 ( 指针退化成数组 ) 一维数组参数退化为指针 : 1.C语言中的拷贝方式 : C 语言中只会以 传值拷贝 的方式来传递参数 ;

    3.7K30

    C 语言数组 ( 指针数组用法 | 自我结束能力 )

    文章目录 一、指针数组用法 ( 自我结束能力 ) 二、完整代码示例 一、指针数组用法 ( 自我结束能力 ) ---- 在上一篇博客 【C 语言数组 ( 指针数组用法 | 命令行参数处理...) 中的主函数中的 char**env 参数 , 这是个 指针数组 , 其传入参数后 , 退化为 二级指针 , 但其有着 自我结束能力 , 该 指针数组 中的最后一个指针 指向的地址 为 NULL ,...char**env) {} 在不知道数组个数的情况下 , 为 数组 最后一个元素 赋值 0 , '\0' , NULL 等值 , 用于判断该元素是否是 数组的最后一个元素 ; 下面定义的 指针数组 ,...不知道该 指针数组 中的 指针元素个数 , 但是知道该数组中最后一个元素的值为 '\0' , // 指针数组 , 数组中存放着指针 , 每个指针指向 字符串 常量 // 字符串常量在...) { printf("%s\n", menu_array[i]); } 特别注意 , 0 , '\0' , NULL 这三个值都是 0 , 其作用的结果相同 ; C

    3K10
    领券