- 1、本文档共90页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[其它技巧]C06指针
*;第6章 指针; 程序中定义的每一个变量,系统根据变量类型分配一定长度内存单元。
例如,C++编译系统一般为整型变量分配4个字节,为字符型变量分配1个字节。
内存区的每一个字节有一个编号,这就是“地址” 。;注意:内存单元的地址与内存单元的内容的区别。;直接存取方式:按变量名存取变量值的方式。
直接将数3送到整型变量i所标识的单元中。
i = 3;间接存取方式:将3送到指针变量i_pointer所指向的单元(这就是变量i所标识的单元)中。 *i_pointer = 3;*;*;6.2 变量与指针;*;*;*;*;思考1: 输入a、b、c三个整数,由大到小排序 (用指针变量处理)。(不改变a,b,c的值);*;*;*;*;指针变量可以指向数组元素(把某一元素的地址放到一个指针变量中)。
int a[10]; //定义10个元素的整型数组a
int *p; //定义一个基类型为整型的指针变量p
p=a[0]; //将a[0]的地址赋给指针变量p,使p指向a[0];6.3 数组与指针 6.3.1 指向一维数组元素的指针;说明:
(1) p+i和a+i就是a[i]的地址;
(2)*(p+i)或*(a+i)是p+i或a+i
所指向的数组元素,即a[i]。
(3)引用一个数组元素,可用以下方法:
① 下标法,如a[ i ]形式;
② 指针法,如*(a+i)或 *(p+i)。;例:
#include iostream
using namespace std;
int main()
{ int a[ ] ={1,2,3};
int *p;
p = a;
int i;
[输出a数组中各值;]
return 0;
};方法三:for(i = 0; i 3; i++)
cout *(p+i) endl;;其中,采用方法六可以提高执行效率。;指针变量的算术运算
如果先使p指向数组a的首元素(即p=a),则:
(1) p++(或p+=1)。使p指向下一元素,即a[1]。如果用*p,得到下一个元素a[1]的值;
例如:
int a[3] = {1,2,3};
int *p = a;
p++;
cout *p endl; ; (2) *p++与*++p作用不同
*p++是先取*p的值,再使p++;
*++p是先使p++,再取*p的值。
例如:
int a[3] = {1,2,3};
int *p = a;
cout *p++ endl;
cout *++p endl; ; (3) (*p)++表示p所指向的元素值加1。
例如:
int a[3] = {1,5,9};
int *p = a;
cout (*p)++ endl; ;*;*;*;6.3.2 用指针变量作函数参数接收??组地址;例6.6 将10个整数按由小到大的顺序排列。;*;实际上函数调用时并不存在一个占有存储空间的形参数组,只有指针变量。
实参与形参的结合,有以下4种形式:
实 参 形 参
数组名 数组名
数组名 指针变量
指针变量 数组名
指针变量 指针变量;*;*;*;*;1. 多维数组元素的地址
设有一个二维数组a,它有3行4列。它的定义为
int a[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};;*;*;*;*;*;例6.8 输出二维数组任意一行任意一列元素的值。(用指向一维数组的指针变量实现);*;*;*;*;*;*;*;*;*;*;*;*;*;*;若干字符串按字母顺序(由小到大)输出。(不改变字符数组中字符串的位置);*;*;int *….*p ; 实际上在程序中很少超过二级间址。;*;*;6.8 有关指针的数据类型和指针运算的小结;*;*;p=NULL; //指针变量为空值
在iostream头文件中定义:
#define NULL 0
NULL代表整数0,但系统中没有地址为0的单元,因此指针变量不指向任何有效单元。
注意,p的值等于NULL和p未被赋值是两个不同的概念。
;*;*;总结:
使用指针的优点: ①提高程序效率;②调用函数时,能在被调用函数中改变主调函数中多个变量的值;③可以实现动态存储分配。
但是,指针使用太灵活,对熟练的程序员来说,可以利用它编写出颇有特色、质量优良的程序,实现许
您可能关注的文档
最近下载
- 供方评价表(物流服务).docx VIP
- 给排水国标图集-02S404:防水套管.pdf VIP
- Unit3ComparisonandContrast市公开课一等奖省赛课微课金奖PPT课件.pptx
- 60kW-258kWh磷酸铁锂储能系统项目方案书.pdf
- 数量指标 质量指标 时效指标 成本指标.xls VIP
- 2024年联通新融合发展技能竞赛(业务管理及稽核赛道)试题库(含答案).docx
- 江苏开放大学维修电工第3次形考作业答案.pdf
- 2023冠状动脉造影日间手术专家共识(完整版).pdf
- DB51/T 2919-2022FDIS古树名木养护和抢救复壮及管理技术规程.pdf
- BS EN 16314-2013 国外国际规范.pdf
文档评论(0)