工信版(中职)编程语言基础——C语言模块7教学课件

2022-10-26
| 70页
| 96人阅读
| 1人下载
普通

内容正文:

YCF (中职)编程语言基础——C语言模块7教学课件 1 模块7指针 任务1 指针的概念 任务2 指向简单变量的指针 任务3 指针与数组 任务4 指向字符串的指针变量 任务5 指向函数的指针变量 任务6 指针变量作为函数参数 任务7 指向结构体变量的指针 任务1指针的概念 程序中的变量在运行时要占用内存单元,用来存放变量的内容。内存单元按顺序编号,称为内存地址,它相当于门牌号,系统根据内存地址存取数据。 在C语言中,指针是一种数据类型,指针变量是用来专门存放所指对象地址的变量,也就是说,数据值是存放在指针所指的对象中,而不是在指针变量中。例如,我们定义了一个变量px,把x的地址1000存放在变量px中,通过px可以间接地访问x变量。px就是指向x的指针变量,px和它所指对象x的关系如图7-1所示。 返回 任务2指向简单变量的指针 7.2.1 指针变量的定义 指针变量在C语言中是一个重要的概念,指针变量定义的一般形式为: 其含义是:指明标识符是存放某类型变量的地址变量,又称标识符为指向类型标识符的指定变量,简称标识符为指向类型标识符的指针。 例如int * px , x ; 表明px是指向某一整型变量的指针变量。 指针变量是一个变量,是存放地址的变量。设有一个指针变量px,若把变量x的地址赋给px,即: 返回 下一页 任务2指向简单变量的指针 则变量x的地址被放入指针变量px的存储空间中,其关系如图7-2所示。 当指针得到某一地址时,称该指针指向了那个地址的存储空间;指针指向的存储区域中的数据称为指针的目标。 在程序中用“*”表示指针的目标,即:* px表示的是px的目标x。 其实*px是一个运算表达式,也就是说:“*”是一个运算符,称为访问目标运算符,它只有一个运算量,而且必须是地址量。 在对指针的实际运用中,经常会用到以下操作。 对指针变量赋地址,即指针的初始化; 利用指针可以间接访问变量。 上一页 返回 下一页 任务2指向简单变量的指针 【例7-1】使用指针实现对变量的间接访问。 上一页 返回 下一页 任务2指向简单变量的指针 7.2.2 指针的用途和用法 由于指针是一种存放变量地址的特殊变量,因而为指针初始化的方法就是将1个变量的地址赋给1个指针变量。 (1)取地址运算符”&”。在C程序设计中,1个变量在内存中存放时具有确定的地址,但是对于程序设计者来说,具体地址是多少并不重要。使用取地址运算符”&”可以获得1个变量在内存中的地址。 上一页 返回 下一页 任务2指向简单变量的指针 (2)将变量地址赋给指针。程序中的语句组”p=&a;q=&b;”的功能是把整型变量a、b的地址赋给指针变量p、q,这就是对指针变量的赋值操作。 注意:对指针变量所赋的值一定是地址值。我们可以使用3种地址值: 变量的地址:其表示方法为&变量名,如程序中&a和&b 数组名:数组名表示数组的首地址。 已经定向的指针:其中保存了1个变量的地址。 上一页 返回 下一页 任务2指向简单变量的指针 (3)取内容运算符“*”。在指针的前面添加“*”运算符可以获得该指针所指向变量的值,因此将“*”运算符称为取内容运算符。 当将一个指针指向一个变量后,使用“*”可以实现对变量的间接访问。举例说明。 上一页 返回 下一页 任务2指向简单变量的指针 使用间接访问的方法不但可以将数据读出,还可以将数据写入。 注意:在指针定义语句中“*”只是一个指针标志符号,主要说明定义的变量为指针变量,不是取内容的运算符号,举例对比。 上一页 返回 下一页 任务2指向简单变量的指针 正因为如此,可以在指针定义的同时对其进行定向,例如: (4)除了给指针赋1个确定的地址外还可以为指针赋1个空值,这时该指针并没有指向个确定的地址,例如: 上一页 返回 下一页 任务2指向简单变量的指针 (5)在C语言中,虽然在定义1个变量后系统就为该变量在内存中分配了一定大小的存储空间。但究竟此单元的地址是多少,用户是很难知道的。其实,在实际的操作中,通常并不需要知道1个变量在内存中的地址编号是多少,在程序中只需用相应的表达式表示出1个变量的地址即可,例如使用语句: 上一页 返回 任务3指针与数组 7.3.1 一维数组的指针和指向一维数组的指针变量 1. 数组的指针与数组元素的指针 数组元素的指针是指数组中某个具体元素的地址。数组的指针则是数组的首地址,也叫起始地址,是数组中最开头那个元素的地址。C语言程序中,数组名本身就代表该数组的首地址。 返回 下一页 任务3指针与数组 2. 指向数组元素的指针变量的定义与赋值 定义一个指向数组元素的指针变量的方法一般如下: 注意: 必须保证数组类型和指针变量所指向的变量类型保持一致。如果数组为int型,则指针变量应指向

资源预览图

工信版(中职)编程语言基础——C语言模块7教学课件
1
工信版(中职)编程语言基础——C语言模块7教学课件
2
工信版(中职)编程语言基础——C语言模块7教学课件
3
工信版(中职)编程语言基础——C语言模块7教学课件
4
工信版(中职)编程语言基础——C语言模块7教学课件
5
工信版(中职)编程语言基础——C语言模块7教学课件
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。