版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第10章,指针,10.1地址和指针的概念10.2变量的指针和指针变量10.3数组和指针10.4字符串和指针10.5返回指针10.6指针值的函数10.7指针数组和指针10.8指针的数据类型和指针运算的总结,目录内存中的每个字节对应一个编号(地址)。 如果为计程仪列定义了变量,则在编译时将为变量分配存储单元。按变量地址网站数据库变量值的方式称为“直接网站数据库”方式。 例如,scanf(%d,2 )、变量的值中网站数据库的另一种方法:间接网站数据库等。 中,指针变量是专用存储地址的特殊变量。 定义指针变量i_pointer设为存储整数变量的地址,分配地址为(3010 )、(3011 )的2字节。
2、结果: i_pointer; i_pointer的值为(2000 )。 对于网站数据库变量的值,存储有“的地址”的变量i_pointer能够从从中取出的地址(2000 )找到取出到2000、2001字节的值(3)。 10.1地址和指针的概念,一个变量的地址称为该变量的“指针”。 例如,地址2000是指向变量的指针。 如果一个变量用于保存另一个变量的地址(指针),则该变量称为指针变量。 i_pointer是一个指针变量。 指针和指针变量的定义:指针是存储地址的变量,指针变量是存储地址的变量。 区分“指针”和“指针变量”两个概念。 10.1地址和指针的概念,下面都是合法的定义: float *po
3、inter_; char *指点符号: 可以使用赋值语句将指针变量指向变量。 例如: pointer_; 指点符号: 为了明确指针变量和它所指变量之间的联系。 在计程仪程序中,用*符号(指针运算符or间接网站数据库运算符)表示“点”。10.2变量的指针和变量的指针变量,定义10.1指针变量定义指针变量的常用形式是基本类型*指针变量名称,定义指针变量时请注意两点:定义中的指针变量前面的“*”表示该变量的类型是指针类型变量。 示例3360浮点*指针_ 1; 指针变量的名称是pointer_1,而不是* pointer_1。 (2)定义指针变量时必须指定基本类型。 注意:存储地址的类型必须与以下分配
4、相对应: int * pointer_1; pointer_1=,指向10.2变量的指针和变量的指针变量,指向10 .指针变量的引用,指针变量中只能存储地址(指针),不要将一个整数(或其他地址以外类型的数据)分配给一个指针变量。 例如,从指针变量到整数变量#include voidmain () int, int *指点器_,*指点器_; 100十点指点符号: printf(%、%、); 打印机(%、%、*指点器_、*指点器_ );10.2变量的指针和变量的指针变量、“”和“*”(指针运算符、间接网站数据库运算符)的说明:语句pointer_; (1)* pointer_的意思是什么? “”和
5、“*”的优先顺序相同,右侧结合,因此先进行* pointer_运算,然后再执行运算。 即,* pointer_与相同,表示变量a的地址。 指点符号2 *指点符号; 其作用是将(的地址)分配给pointer_2。10.2变量的指针和变量的指针变量,(2) *的意思是什么? 先进行运算,然后再进行*运算。 也就是说,指定的变量是变量a。 与*pointer_的作用一样,等效于变量。 即与*等价。 相当于(3) (*pointer_ )。 必须在括号中留心,否则为*pointer_,相当于*(pointer_ ),因为用同一优先级与*右结合。 由于在pointer_1的右侧存在“后加法”,因此对po
6、inter_的原始值进行*运算而得到的值,接着通过改变pointer_的值,pointer_变得不朝向。10.2变量的指针和变量的指针变量,例如10.2输入和2个整数,按照从大到小的顺序输出和。包括号() int * 1、*2、*、扫描(,); 1; if (); printf(=、); printf (最大=,最小=,*1,*2); /*p1指针的数量*/,10.指针变量的引用指针变量的应用示例是,ax、in、10.2变量的指针和变量的指针变量,10.3指针变量作为函数关残奥字计量器,例如按照尺寸顺序输出10.3输入的2个整数,10. int *指点器_,*指点器_; 扫描(,); 指点符号
7、: 指针2; if ()交换(指点器_,指点器_2) :打印(,); 语音交换(英特尔* 1、英特尔*2)英特尔暂停。 temp*1; *1*2* 2暂停; 将10.2变量的指针和变量的指针变量,10.3指针变量作为函数残奥参数,在示例10.3中更改函数swap的定义后,结果如何? int, int *指点器_,*指点器_; 扫描(,); 指点符号: 指针2; if ()交换(*指点器_,*指点器_2) :打印(,); 语音交换(进x、进y )进度。 tempx; xy; 七星级; 将10.2变量的指针和变量的指针变量、10.3指针变量作为函数残奥参数,在示例10.3中更改函数swap的定义后
8、,结果如何?# includevoidmain () void交换(int *2、int *2); int, int *指点器_,*指点器_; 扫描(,); 指点符号: 指针2; if ()交换(指点器_,指点器_2) :打印(,); 语音交换(英特尔* p 1、英特尔* p2)英特尔* p。 pp1; p1p2; p2p1; 重要的总结: c中的实参数-形参数之间的数据传输是单向式的“值传输”,不能通过调用函数变更实参数的值,但是可以变更实参数指示的变量的值。 的双曲馀弦值。 如果想要在函数调用中得到n个被变更的值,则可以在1、主调函数中设定n个变量,用n个指针变量来指向它们2 .然后将指针
9、变量作为实际的残奥仪表,将这些个n个变量的地址传递给波形残奥仪表3 .通过波形残奥仪表指针变量, 4 .改变这些个n个变量单元的值,可以在主调函数中使用改变了这些个值的变量,10.2变量的指针和变量的指针变量,10.3数组和指针,一个变量具有地址,一个数组的各数组元素在存储器中占有存储单元,并具有对应的地址。 指针变量也可以指数组元素。 指向数组元素的指针是数组元素的地址。 来定义数组元素的指针变量方法。 例如: int 10; int *; 注意:数组元素的指针变量基本类型必须与数组元素类型相同。 10.3.1指向数组元素的指针,值为a0的指针变量p; 图:int a10,*p; pa; /
10、*p=a和p=int; for(i=0; i10; 扫描(,p=a; for(i=0; i10; 扫描(,p ); printf(n ); for(i=0; i10; 打印机,打印机。普计程仪列的执行情况: 123456790215323403003625202116318259823728483明显输出的数值不是数组中各元素的值。 解决方法,在第二个for循环前添加赋值语句。#包括卷主机() int *、I、a10; p=a; for(i=0; i10; 扫描(,p ); printf(n ); p=a; for(i=0; i10; 打印机,打印机。 当用10.3.2指针引用数组元素,10.3数组和指针,用指针变量指向数组元素时,指向数组元素的指针变量可以指向该数组中最后一个元素之后的存储单元,但必须留心为没有意义。 注意指针变量的运算。 1 )可能的算术运算为pn、p /p、p-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高考数学一轮复大题仿真卷01(ABC三组夺分卷)(学生版+解析)
- 企业资产重组知识产权转让合同
- 水库优化调度工程师考试试卷及答案
- 水产养殖尾水处理工程师岗位招聘考试试卷及答案
- 浐灞生态区协议书供货
- 协议书车可以改全款
- 政企数据开放合作平台
- 237万宅基地赔款协议书
- 工厂招标承包经营协议书
- 护肤品公司劳动协议书
- 【MOOC】《理性思维实训》(华南师范大学)章节期末慕课答案
- 《水质监测智能无人实验室建设与运维技术要求》
- 2025年财政资金监管“清源行动”自查报告
- 《焊条电弧焊》课件(共七章)
- 2026中远海运集团招聘考试参考题库及答案解析
- 高速路机电安全培训课件
- 医疗器械生产企业洁净区工作服管理规定
- 2025国铁集团考试题库及答案
- 老年健康饮食指导及食谱设计
- 中国科学院2025年科研项目聘用人员工作规范与考核协议
- 综合行政执法面试题及参考答案
评论
0/150
提交评论