c语言指针引用数组元素,c语言——数组指针和通过指针引用数组元素的方法总结...
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语言——数组指针和通过指针引用数组元素的方法总结...相关推荐
- c语言中的字节和元素,C语言指向数组元素的指针
指向数组元素的指针和运算法则 所谓指向数组元素的指针,其本质还是变量的指针.因为数组中的每个元素,其实都可以直接看成是一个变量,所以指向数组元素的指针,也就是变量的指针. 指向数组元素的指针不难,但很 ...
- C语言字符型数组ppt,C语言第13讲指针与字符串(字符数组).ppt
C语言第13讲指针与字符串(字符数组).ppt 6.2.3 指针与字符串(字符数组) C语言用字符数组存放字符串. 字符数组元素个数确定,一般用下标控制循环. 字符串有效字符个数由0确定,用结束符0控 ...
- c语言形参指针 实参数组,《C语言程序设计》中的指针形参和函数体中数组实参问题的教学研究.pdf...
<C语言程序设计>中的指针形参和函数体中数组实参问题的教学研究.pdf C C <CC语言程序设计>中的指针形参和函数体中数组实参问题的教学研究 山东理工大学计算机学院 董敬富 ...
- c语言二维数组 ppt,C语言二维数组与指针.ppt
C语言二维数组与指针.ppt 好好考,全国计算机等级考试 二级C语言,第12讲 二维数组与指针,二维数组的定义 数组元素的引用及初始化 二维数组和指针 二维数组名和指针数组作为实参 二维数组程序举例 ...
- 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定 ...
- 初识C语言(1)(2)(3)(4) C语言入门 保姆级教程 变量 常量 字符串 转义字符 操作符 关键字 字符串 指针 函数 结构体 数组 选择语句 循环语句
一.如何写C语言代码 1.编译器 2.创建项目 3.创建源文件 4.写代码 5.编译+链接+运行 项目名字不要汉语,不要特殊字符,不要加空格,项目路径一般为你想要的路径 C语言中,一般创建.c源文件, ...
- c语言指针与一维数组PPT,C语言第5章指针和一维数组.ppt
C语言第5章指针和一维数组.ppt 2019/11/5,第5章 指针与一维数组,软件学院计算机科学与技术教研室 冯海文 fhw19770704,2019/11/5,5.1 指针的概念与运算,C语言继承 ...
- C语言指针的那些事:第三篇(函数指针,指针函数,函数指针数组,指向函数指针数组的指针)
文章目录 1. 函数指针 1)函数指针的例题 2. 指针函数 3. 函数指针数组 1)函数指针数组的用途 4. 指向函数指针数组的指针 5. 一些后话 1. 函数指针 函数指针就是指向函数的指针:本质 ...
- 语言axff所占字节数_【每日一答】(74)数组名v.s.指针变量,C语言其实很简单形象比喻为“是一个朋友圈的”...
下图选自<C语言其实很简单>第8章: 问:请问张老师!书上第227页一句话:指针变量a本身的地址(a所在内存字节编号)是数组的地址,数值上与元素a[0]的地址相等! 这句话是什么意思,我看 ...
最新文章
- 御水.20180506
- VTK:vtkCursor2D用法实战
- github中的watch、star、fork的作用
- matlab常用函数——数据类型函数
- 【LOJ#6682】梦中的数论(min_25筛)
- python具体工作内容_有没有人知道公司里用python工作的内容有什么
- Spring加载resource时classpath*:与classpath:的区别
- win7下使用Taste实现协同过滤算法
- python argparse_Python 命令行之旅:深入 argparse(二)
- 《产品设计与开发(原书第5版)》——第1章 概论 1.1 成功的产品开发的特点...
- Redis 网络编程
- feathers mysql_Go 语言操作 MySQL 之 CURD 操作
- 在Linux中,用.swp文件恢复未保存的文件
- h264格式视频转mp4
- 校招行测笔试-图形推理
- oracle临时表中数据消失了,oracle 临时表的使用
- 怎样训练左右手协调_吉他,左右手的协调,练习的方法原来这么简单!
- Sensor感应器介绍
- 不求人小白也能搭建私有云盘,焕然一新体验
- CMOS MIPI EOT 学习 基于Zynq高速串行CMOS接口的设计与实现