当前课程知识点:C语言程序设计 >  第9章 指针 >  9.1 指针变量的概念(上) >  指针变量的概念(上)

返回《C语言程序设计》慕课在线视频课程列表

指针变量的概念(上)在线视频

下一节:指针变量的概念(下)

返回《C语言程序设计》慕课在线视频列表

指针变量的概念(上)课程教案、知识点、字幕

同学们

从这一章开始我们讲解指针

指针是c语言中一个重要的概念

也是C语言的一个重要特色

正确而灵活地运用指针

可以有效地表示复杂数据结构

动态分配内存

有效方便的使用数组

在调用函数时能得到多于1个的值

能直接处理内存地址等

这对设计系统软件非常必要

掌握指针的应用

可以使程序简洁紧凑高效

学习本章内容时同学们要多思考多比较多上机

在实践中掌握指针

在这一节中

我们将和大家探讨指针 指针变量 指向

内存单元的地址与内容

内存单元的两种存取方式

首先我们要清楚数据在内存中是如何存储

又是如何读取的

如果在程序中定义了一个变量

在编译时就会给这个变量分配内存单元

系统根据程序中定义的变量类型

分配一定长度的空间

例如 一般微机使用的C系统为整型变量分配2个字节

对实型变量分配4个字节

对字符型变量分配1个字节

内存区的每一个字节

系统都会给它分配一个地址

这个地址相当于旅馆中的房间号

在地址所表示的内存单元中存放数据值

如果在程序中定义了一个变量

在对程序进行编译时

系统就会给这个变量分配内存单元

编译系统根据程序中定义的变量类型

分配一定长度的空间

内存区的每一个字节有一个编号

这就是地址

下面我们来讲述三个概念

指针 指针变量与指向

由于通过地址能找到所需的变量单元

将地址形象化地称为指针

我们可以说指针指向某变量单元

意思是通过指针能找到以它为地址的内存单元

下面我们来介绍概念

一个变量的地址称为该变量的指针

指针变量是专门用来存放另一变量的地址变量

请区分指针和指针变量这两个概念

变量的指针就是变量的地址

存放变量地址的变量是指针变量

指向是一个指针变量中存放了另一变量的地址

我们就称此指针变量指向该变量

如指针变量p中存放了变量a的地址

我们就称指针变量p指向了变量a

下面我们来讲解两个运算符

取变量地址运算符

和取指针所指向变量的内容运算符*

那么这两个运算是互为逆运算

下面我们来看一下

有一个整型变量a

它里面存放了整数10

有一个指针变量p

里面存放了a的地址2000

那么我们就说可以说a的地址可以表示为p,&a,&(*a)

a的内容10可以用表达式a,*p,*(&a)

他们存在如下的等式关系

我们可以看出p是指针变量

它的内容是地址量

*p是指针的目标变量

它的内容是数据

&a是指针变量占用内存的地址

由此我们可以看出

对于一个内存单元

我们可以使用两种访问方式

来读取内存单元当中的值

首先我们可以定义一个变量a

直接使用变量名a存取该变量内的内容

这称为直接访问

我们也可以定义一个指针变量p

把变量a的地址存放p中

通过找到指针变量p

使用*p表达式来取p所指向的内存单元的内容方式来访问变量a的值

这种方式我们称之为间接访问

下面我们可以看一下这个实例

我们有一个整型变量a

它里面存放了3

那么我们使用表达式a=3给a赋值

是直接访问

我们在定义一个指针变量p

将a的地址2000存放到p中

我们使用表达式*p=20

可以给p所指向内存单元的内容赋值的存放时的目的

这种方式叫做间接访问

利用变量自身直接存取和指针变量间接存取

我们都可以达到对a变量内容来进行读取和修改的目的

下面我们来研究一下指针变量与其所指向的变量之间的关系

我们定义变量a

使用赋值语句a=3

我们在a中存入数值3

然后我们再定义指针变量p

将变量a的地址存放到指针变量中

这样我们就完成了一个p指向a的指向关系

那么对于变量A所代表的内存单元

我们用直接访问

可以使用变量A的变量名来访问

那么表达式a代表变量A的内容

表达式&a代表着变量a的地址

那么我们可以使用复制表达式a=3来对变量a进行写入操作

对于间接访问

我们可以使用指向变量A的指针变量p来访问变量A这个内存空间

我们使用*p来表示指针变量p所指向的内存单元A的内容

那么使用变量p来代表变量a的地址

我们使用表达式*p=3对变量A来进行内存的写入操作

这样我们就建立了直接访问和间接访问之间的一个对应关系

A等价于*p &a等价于p

a=3可以*p=3

今天的内容就讲到这里

在这一节中我们主要学习了存储单元的内容与地址

内存单元的直接访问与间接访问

以及指针

指针变量与指向的概念

以及指针运算的两个运算符&与*运算符

请同学们下去使用计算机编写两数交换的程序

在实际操作中体会间接寻址操作内存的指针方式

同学们

我们下次课再见

C语言程序设计课程列表:

第1章 C语言程序设计预备知识

-计算思维与计算机

--计算思维与计算机

--计算思维与计算机

--计算思维和计算机

第2章 C语言程序设计基础

-2.1 程序设计语言的发展及其特点和应用

--程序设计语言的发展及其特点和应用

--程序设计语言的特点及发展

- 2.2 C语言程序的基本结构及编制C语言程序的基本步骤

-- C语言程序的基本结构及编制C语言程序的基本步骤

--C语言程序的结构和编制步骤

第3章 基本数据类型、运算符与表达式

-3.1 C语言的数据类型

--C语言的数据类型

--C语言的数据类型

-3.2 常量

--常量

--常量

-3.3 什么是变量

--什么是变量

--什么是变量

-3.4 如何进行算术运算

--如何进行算术运算

--如何进行算术运算

-3.5 赋值运算符和逗号运算符

--赋值运算符和逗号运算符

--赋值运算符和逗号运算符

-3.6 数据类型转换

--数据类型转换

--数据类型转换

第4章 基本输入输出和顺序程序设计

-4.1 格式化输出printf

--格式化输出printf

--格式化输出

-4.2 格式化输入scanf及字符数据的非格式化输入输出

--格式化输入scanf及字符数据的非格式化输入输出

--格式化输入

第5章 选择结构程序设计

-5.1 关系运算符和关系表达式

--关系运算符和关系表达式

--关系运算符和关系表达式

-5.2 逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

--逻辑运算符和逻辑表达式

-5.3 条件运算符和条件表达式

--条件运算符和条件表达式

--条件运算符和条件表达式

-5.4 if语句

--if语句

--if语句

-5.5 switch语句

--switch语句

--switch语句

第6章 循环结构程序设计

-6.1 while语句

--while语句

--while语句

--do-while语句

-6.2 for语句

--for语句

--for语句

-6.3 循环的嵌套

--循环的嵌套

--循环的嵌套

-6.4 break语句和continue语句

--break语句和continue语句

--break和continue语句

第7章 数组

-7.1 一维数组的定义和引用

--一维数组的定义和引用

--一维数组的定义和引用

-7.2 一维数组的赋值

--一维数组的赋值

--一维数组的赋值

-7.3 二维数组的定义和引用

--二维数组的定义和引用

--二维数组的定义和引用

-7.4 二维数组的赋值

--二维数组的赋值

--二维数组的赋值

-7.5 字符串的本质

--字符串的本质

--字符串的本质

-7.6 字符串操作的常用函数

--字符串操作的常用函数

--字符串常用函数

-7.7 字符串数组

--字符串数组

--字符串数组

第8章 函数

-8.1 函数概述

--函数概述

--函数概述

-8.2 有参函数

--有参函数

--有参函数

-8.3 函数参数的传递方式

--函数参数的传递形式

--函数参数的传递方式

-8.4 变量的作用域和生存期

--变量的作用域和生存期

--变量的作用域和生存期

-8.5 变量的存储类型

--变量的存储类型

--变量的存储类型

-8.6 函数的嵌套和递归调用

--函数的嵌套和递归调用

--函数的嵌套和递归调用

-8.7 函数的作用域与封装

--函数的作用域与封装

--函数的作用域与封装

第9章 指针

-9.1 指针变量的概念(上)

--指针变量的概念(上)

--指针变量的概念(上)

-9.2 指针变量的概念(下)

--指针变量的概念(下)

--指针变量的概念(下)

-9.3 指向一维数组的指针变量

--指向一维数组的指针变量

--指向一维数组的指针变量

-9.4 指向二维数组的指针变量(上)

--指向二维数组的指针变量

--指向二维数组的指针变量(上)

-9.5 指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

--指向二维数组的指针变量(下)

-9.6 动态内存分配

--动态内存分配

--动态内存分配

第10章 预处理命令

-10.1 编译预处理

--编译预处理

第11章 复杂数据类型

-11.1 用户自己建立数据类型

--用户自己建立数据类型

--用户自己建立数据类型

-11.2 定义结构体类型变量

--定义结构体类型变量

--定义结构体类型变量

-11.3 结构体变量的引用与初始化

--结构体变量的引用与初始化

-11.4 结构体数组

--结构体数组

--结构体数组

-11.5 指向结构体类型数据的指针

--指向结构体类型数据的指针

--指向结构体类型数据的指针

第12章 文件

-12.1 文件的基本概念和文件指针

--文件的基本概念和文件指针

--文件的基本概念和文件指针

-12,2 文件的打开和关闭

--文件的打开和关闭

--文件的打开和关闭

-12.3 文本文件读写

--文本文件读写

--文本文件读写

-12.4 二进制文件读写

--二进制文件读写

--二进制文件读写

指针变量的概念(上)笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。