目录

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

一.简介

1.数组

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

C语言 指针数组和数组指针区别 - C语言零基础入门教程_数组

2.指针

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

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


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

3.指针和数组区别

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

二.指针数组和数组指针区别

可能不少小伙伴很懵逼,又是指针数组又是数组指针的,​​指针数组和数组指针区别​​?? 傻分不清??

1.指针数组

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

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


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

C语言 指针数组和数组指针区别 - C语言零基础入门教程_c语言入门_02

示例代码如下:

char a[3][8]={"gain","much","strong"}; //二维数组,由三个一维数组够成
char *n[3]={"gain","much","strong"}; //指针数组,由三个一维数组够成


2.数组指针

数组指针:它实际上是一个指针,该指针指向一个数组。

int (*arr)[5];
//由于[]的优先级比*高,因此在写数组指针的时候必须将*arr用括号括起来
//arr先和*结合,说明arr是一个指针变量
//这句话的意思就是:指针arr指向一个大小为5个整型的数组。


​int(*arr)[5]​​ 表示指针 ​​arr​​ 指向一个大小为 ​​5​​ 个整型的数组,如下图:

C语言 指针数组和数组指针区别 - C语言零基础入门教程_猿说编程_03

示例代码如下:

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C语言 指针数组和数组指针区别
//@Time:2021/06/19 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

int a[4][5];
int (*p)[5]=a;//指针p指向一个大小为5个整型的数组
*(p+i)是一维数组a[i][0]的地址;
(p+2)+3表示a[2][3]地址(第一行为0行,第一列为0列);
*(*(p+2)+3)表示a[2][3]的值;


三.猜你喜欢

  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++​
  21. ​C 语言 使用指针遍历数组​
  22. ​C 语言 指针和数组区别​
  23. ​C 语言 数组指针​
  24. ​C 语言 指针数组​
  25. ​C 语言 指针数组和数组指针区别​