定义一个4元素数组,通过指针变量给数组赋值并显示指向数组的指针变量全部值 c语言基础 怎么做??

关于函数指针方面这个东西可能你有用:

  由上节的例 7.4可知,可用指针变量来访问数组中任一元素通常将指向数组的指针变量首地址称为指向数组的指针变量指针,而将指向数组元素的指针变量称为指向指向数组的指针变量指针变量使用指向指向数组的指针变量指针变量来处理数组中的元素,不僅可使程序紧凑而且还可提高程序的运算速率。

  7.2.1 一维数组与指针


  指向数组的指针变量首地址称为数组指针若定义整型数组a[5],系统为数组分配的地址从1000到1019如图7.5所示,则数组a的首地址1000为数组a的数组指针C++规定,指向数组的指针变量首地址可用数组名a表示因此,數组a的数组指针=a=&a[0]

  存放数组元素地址的变量称为数组指针变量。如:
  则p为数组指针变量在C++中数组名a可用于表示指向数组的指针變量首地址,所以数组名a可作为数组指针使用因此:p=a与p=&a[0] 的作用是相同的。但数组名a不能用来进行赋值运算、"++"、"- -"等运算
  当指针变量指向数组首地址后,就可使用该指针变量对数组中任何一个元素变量进行存取操作现举例说明如下:

  【例7.6】用指针变量访问数组元素。

由上例可以看出访问数组元素值有三种方法:

  综上所述,对一维数组a[ ]而言当p=a后,有如下等同关系成立:

7.2.2 二维数组与指针

  1.二维数组元素在内存中的存放方式


  在C++中二维数组元素值在内存中是按行的顺序存放的。若定义二维整型数组a[3][3]假设编译系统为数組a分配的内存空间从1000开始到1035为止,则数组中各元素a[0][0]~a[2][2]在内存中按行存放次序如图7.6所示因此,与一维数组类似可用指针变量来访问二维数組元素。

  【例7.7】用指针变量输出二维数组各元素的值

  2.二维数组行首地址

  二维数组各元素按行排列可写成如图7.7所示矩阵形式,若将第i行中的元素a[i][0]、a[i][1]、a[i][2]组成一维数组a[i]

  为了区别数组指针与指向一维指向数组的指针变量指针C++引入了行地址的概念,并规定二维數组a中第i行地址用a+i或&a[i]表示行地址的值与行首地址的值是相同的,即:


  但两者类型不同所以行地址a+i与&a[i]只能用于指向一维指向数组的指针变量指针变量,而不能用于普通指针变量例如:
  则编译第二条指令时将会出错,编译系统提示用户p与a+0的类型不同如果要将行哋址赋数组指针变量,必须用强制类型转换如:
  关于指向一维指向数组的指针变量指针将在后文中介绍。
  二维数组名a可用于表礻二维指向数组的指针变量首地址但C++规定该首地址并不是二维数组中第0行第0列的地址(即a≠a[0][0]),而是第0 行的行地址即a=a+0=&a[0]。

4.二维指向数组的指针变量元素地址与元素值

  知道了二维指向数组的指针变量行地址与行首地址后可以讨论二维指向数组的指针变量元素地址。

  表7.1 二维数组a的行地址、行首地址、元素地址、元素值的各种表示方式

  【例7.9】定义二维数组a[3][3]用二种方式输出行地址,用三种方式输出荇首地址用四种方式输出所有元素地址及元素值。

看懂了这个你的要求就很方便做了哈

}

C语言里面数组名就是第一个元素的地址,所以可以直接把数组名赋值给一个指针不需要取地址。

(⊙o⊙)哦在提问之后自己就觉得发现问题所在了,每个数组成员都有┅个按顺序的地址MD一天学下来犯糊涂了

你对这个回答的评价是?

你对这个回答的评价是

}

我要回帖

更多关于 指向数组的指针变量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信