1.数组指针:即指向数组的指针

那么, 如何声明一个数组指针呢?

int (* p)[10]; /*括号是必须写的,不然就是指针数组;10是数组的大小*/

1

拓展:有指针类型元素的数组称为指针数组。

2.通过指针引用数组元素的基本方法

(1)小标法:a[i]。

(2)指针法:* (a+i) 或 * (p+i) 或 p[i]。其中,a是数组名,p=a,即p指向数组a首元素的地址。

问:为什么* (a+i) 和* (p+i)是等价的,或者说是引用的同一个数组元素呢?

答:在C语言中,数组名代表的是数组中首元素的地址。在程序编译时,a[i]是按*(a+i)处理的,即按数组元素的首地址加上相应位移量i找到新元素的地址。而p=a,即p是指向数组a的首元素的地址,因此是等价的。从这里可以看出,[ ]实际上是变地址运算符,即将a[i]按a+i计算地址,然后找此地址单元中的值。

问:为什么p[i] 和* (p+i)是等价的,或者说是引用的同一个数组元素呢?

答:C语言规定,当指针变量指向数字元素时,指针变量可以带下标。而在程序编译时,对此下标处理的方法是转换为地址,即对p[i] 处理成 (p+i)。同上,[ ]是变址运算符。

3.利用指针引用数组元素

(1)p++; *p;

(2)*p++;等价于*(p++);因为++和*的优先级一样,故结合方向是从右向左。

(3)*(p++);和*(++p);二者是有区别的。前者是先取*p的值,然后p加1;后者是先p加1,再取p的值。即如果p指向的是数组a元素a[0],则前者得到a[0]的值,后者得到a[1]的值。

(4)++(*p);将p指向的元素的值加1。

(5)如果p指向元素a[i],

*(p--);先得到p指向的地址的元素a[i],然后p减1。

*(++p);执行结果得到a[i+1],p加1。

*(–p);执行结果得到a[i-1],p减1。

4.利用指针输出数组元素

int a[10];

int * p;

p = a;

while(p

printf("%d",*p++);

int a[10];

int * p;

p = a;

while(p

c语言指针引用数组元素,c语言——数组指针和通过指针引用数组元素的方法总结...相关推荐

  1. c语言中的字节和元素,C语言指向数组元素的指针

    指向数组元素的指针和运算法则 所谓指向数组元素的指针,其本质还是变量的指针.因为数组中的每个元素,其实都可以直接看成是一个变量,所以指向数组元素的指针,也就是变量的指针. 指向数组元素的指针不难,但很 ...

  2. C语言字符型数组ppt,C语言第13讲指针与字符串(字符数组).ppt

    C语言第13讲指针与字符串(字符数组).ppt 6.2.3 指针与字符串(字符数组) C语言用字符数组存放字符串. 字符数组元素个数确定,一般用下标控制循环. 字符串有效字符个数由0确定,用结束符0控 ...

  3. c语言形参指针 实参数组,《C语言程序设计》中的指针形参和函数体中数组实参问题的教学研究.pdf...

    <C语言程序设计>中的指针形参和函数体中数组实参问题的教学研究.pdf C C <CC语言程序设计>中的指针形参和函数体中数组实参问题的教学研究 山东理工大学计算机学院 董敬富 ...

  4. c语言二维数组 ppt,C语言二维数组与指针.ppt

    C语言二维数组与指针.ppt 好好考,全国计算机等级考试 二级C语言,第12讲 二维数组与指针,二维数组的定义 数组元素的引用及初始化 二维数组和指针 二维数组名和指针数组作为实参 二维数组程序举例 ...

  5. C语言基础1:初识C语言(转义、注释;数组、操作符、反码、补码、static、define、指针、结构体常变量;局部变量;作用域、生命周期)

    文章目录 C语言基础1:初识C语言 1.C语言简介 1.1什么是C语言 1.2C语言的发展 2.第一个C语言程序 2.1创建项目 2.2添加源文件 2.3写代码 3.数据类型 4.变量.常量 4.1定 ...

  6. 初识C语言(1)(2)(3)(4) C语言入门 保姆级教程 变量 常量 字符串 转义字符 操作符 关键字 字符串 指针 函数 结构体 数组 选择语句 循环语句

    一.如何写C语言代码 1.编译器 2.创建项目 3.创建源文件 4.写代码 5.编译+链接+运行 项目名字不要汉语,不要特殊字符,不要加空格,项目路径一般为你想要的路径 C语言中,一般创建.c源文件, ...

  7. c语言指针与一维数组PPT,C语言第5章指针和一维数组.ppt

    C语言第5章指针和一维数组.ppt 2019/11/5,第5章 指针与一维数组,软件学院计算机科学与技术教研室 冯海文 fhw19770704,2019/11/5,5.1 指针的概念与运算,C语言继承 ...

  8. C语言指针的那些事:第三篇(函数指针,指针函数,函数指针数组,指向函数指针数组的指针)

    文章目录 1. 函数指针 1)函数指针的例题 2. 指针函数 3. 函数指针数组 1)函数指针数组的用途 4. 指向函数指针数组的指针 5. 一些后话 1. 函数指针 函数指针就是指向函数的指针:本质 ...

  9. 语言axff所占字节数_【每日一答】(74)数组名v.s.指针变量,C语言其实很简单形象比喻为“是一个朋友圈的”...

    下图选自<C语言其实很简单>第8章: 问:请问张老师!书上第227页一句话:指针变量a本身的地址(a所在内存字节编号)是数组的地址,数值上与元素a[0]的地址相等! 这句话是什么意思,我看 ...

最新文章

  1. 御水.20180506
  2. VTK:vtkCursor2D用法实战
  3. github中的watch、star、fork的作用
  4. matlab常用函数——数据类型函数
  5. 【LOJ#6682】梦中的数论(min_25筛)
  6. python具体工作内容_有没有人知道公司里用python工作的内容有什么
  7. Spring加载resource时classpath*:与classpath:的区别
  8. win7下使用Taste实现协同过滤算法
  9. python argparse_Python 命令行之旅:深入 argparse(二)
  10. 《产品设计与开发(原书第5版)》——第1章 概论 1.1 成功的产品开发的特点...
  11. Redis 网络编程
  12. feathers mysql_Go 语言操作 MySQL 之 CURD 操作
  13. 在Linux中,用.swp文件恢复未保存的文件
  14. h264格式视频转mp4
  15. 校招行测笔试-图形推理
  16. oracle临时表中数据消失了,oracle 临时表的使用
  17. 怎样训练左右手协调_吉他,左右手的协调,练习的方法原来这么简单!
  18. Sensor感应器介绍
  19. 不求人小白也能搭建私有云盘,焕然一新体验
  20. CMOS MIPI EOT 学习 基于Zynq高速串行CMOS接口的设计与实现

热门文章

  1. dell服务器连接显示器黑屏,显示器维修-DELL 通病:开机黑屏-视显光电
  2. 关于伸缩列表的ExpandableListView+CheckBox
  3. 【渝粤题库】广东开放大学 营销策划 形成性考核
  4. 如何搭建自己的iPhone Installer软件源
  5. 中顶家电销售管理系统
  6. 22条日常技巧助程序员提高工作效率、节约时间
  7. 川菜馆|文科生的python挑战(1)——字符串
  8. 微软,把数据中心部署到了海底…
  9. 非常实用的QQ离线留言(搞笑)
  10. 德国、英国道路交通管理的特点