C语言的数组指针与指针数组(One)

作者: 遮天的龙 | 来源:发表于2016-06-25 13:05 被阅读389次

一、数组指针与指针数组:

  • 数组指针<——>本质是指针
  • 指针数组<——>本质是数组
    上图:
数组指针与指针数组
理解*(arr +0)     &arr[0]     &arr[0]+1

a 表示第 0 行首地址, a+i 表示第 i 行首地址
*(a+i), a[i], &a[i][0]表示第 i 行第 0 个元素地址
*(a+i)+j, a[i]+j, &a[i][j]表示第 i 行第 j 个元素地址
*(*(a+i)+j) *(a[i]+j), a[i][j]表示第 i 行第 j 个元素

二、数组指针: int (*pName)[N];

对一维数组取地址,等价于数组指针而不是二级指针。
例如:

int arrray[10];
int(*pa)[10] = &array; 正确
int **pa = &array; 错误

指针 32位机下,大小均为4个字节;
指针的本质,就是一个有类型的常量地址;

  Type * var;
  type 决定了类型(步长),* 表示该变量是指针,var 用于存储地址;
  切记: 指针的运算是,地址值+类型的运算;

int [10]   printf("(int)&a[9]-(int)&a[4] = %d\n",
(int)&a[9] -(int)&a[4])=20;
(int)&a[9] 结果为int型数值了;
  • 二级指针:是一种指向指针的指针。程序员可以通过它实现间接访问数据,和改变一级指针的指向问题。
    (1)、定义、初始化;通过n级指针,修改n-1级指针的指向;间接数据访问;
    (2)、二级指针的步长,都是4字节。

相关文章

  • C语言21 指针数组与数组指针

    C语言21 指针数组与数组指针 指针数组的定义 指针数组的赋值 结构体指针数组 分析下面的代码 数组指针的定义 数...

  • 指针数组和数组指针

    指针数组|存储指针的数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组。 例如:int *p[10]...

  • C语言的指针与数组(进阶篇之一)

    一、一维数组与指针 (1).数组指针在C语言中,数组的首地址称为数组指针。而C++规定,数组的首地址可用数组名a表...

  • C语言的数组指针与指针数组(One)

    一、数组指针与指针数组: 数组指针<——>本质是指针 指针数组<——>本质是数组上图: 二、数组指针: int ...

  • C语言中的指针与数组

    C语言中的指针与数组 @(C语言)[排序算法, 快速排序, C实现] 引言 相信指针与数组是不少同学在初学C语言时...

  • 指针数组&数组指针

    本节继续讨论C语言中的指针。 指针数组&数组指针 先理解一下什么是指针数组和数组指针,指针数组的实质是个数组,这个...

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • 指针与数组的区别和联系

    原文地址:指针与数组的区别和联系作者:zhenhuaqin 一.指针与数组的联系: 指针与数组是C语言中很重要的两...

  • 再学C语言之指针要点

    C之字符数组 C之指针引用字符串 C语言之数组指针 数组指针:首先它是一个指针,它指向数组指针数组:首先它是一个数...

  • C语言

    C 指针、指针变量、函数指针、指针函数、指针数组、数组指针、C 数组

网友评论

    本文标题:C语言的数组指针与指针数组(One)

    本文链接:https://www.haomeiwen.com/subject/czkadttx.html