C语言 指针数组

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门


一.简介

1.数组

       数组中的每个元素都有一个序号,这个序号从 0 开始,称为下标 index,例如,a[0] 表示第 1 个元素,a[3] 表示第 4 个元素。数组是一个整体,它的内存是连续的,内存示意图:

C语言 指针数组

2.指针

       指针很灵活,它可以指向任意类型的数据。指针的类型说明了它所指向地址空间的内存,以下是有效的指针声明:

int    *p;    /* 一个整型的指针 */
double *p;    /* 一个 double 型的指针 */
float  *p;    /* 一个浮点型的指针 */
char   *p;    /* 一个字符型的指针 */

       注意:不要忘记在指针类型和变量名中间还有一个 * 号,没有这个 * 号,只是定义了一个普通变量,这也是普通变量声明和指针声明的区别之一;


3.指针和数组区别

       指针和数组区别这里不再继续啰嗦,可以直接参考文章:指针和数组区别


二.指针数组

       指针数组:它实际上是一个数组,数组的每个元素存放的是一个指针类型的元素。

C语言 指针数组
int* arr[4];
//优先级问题:[] 的优先级比 * 高
//说明 arr 是一个数组,而 int* 是数组里面的内容
//这句话的意思就是:arr 是一个含有 4 个 int* 的数组

       int* arr[4] 表示由 4 个一维数组构成,也可以理解为是一个二维数组,如下图:

C语言 指针数组

示例代码如下:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 数组定义和使用
//@Time:2021/06/19 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/
char a[3][8]={"gain","much","strong"};  //二维数组,由三个一维数组够成
char *n[3]={"gain","much","strong"};    //指针数组,由三个一维数组够成

三.猜你喜欢

  1. 安装 Visual Studio
  2. 安装 Visual Studio 插件 Visual Assist
  3. Visual Studio 2008 卸载
  4. Visual Studio 2003/2015 卸载
  5. C语言逻辑运算符
  6. C语言三目运算符
  7. C语言逗号表达式
  8. C语言 sizeof 和 strlen 函数区别
  9. C语言 strcpy 和 strcpy_s 函数区别
  10. C语言 memcpy 和 memcpy_s 区别
  11. C语言 数组定义和使用
  12. C语言 数组遍历
  13. C语言 数组下标越界
  14. C语言 数组内存溢出
  15. C语言 数组下标越界和内存溢出区别
  16. C语言 二维数组定义和使用
  17. C语言 二维数组行数和列数计算
  18. C语言 指针声明和定义
  19. C语言 指针 p++ / p–
  20. C语言 p++/(p)++/(p++)/p++
  21. C语言 使用指针遍历数组
  22. C语言 指针和数组区别
  23. C语言 数组指针
  24. C语言 指针数组

未经允许不得转载:猿说编程 » C语言 指针数组
喜欢(2) 打赏

评论抢沙发

不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!!

开始学习

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏