湖南软件职业技术学院:《C语言程序设计》第八章 指针(危孟君)

第8章指针 1、理解指针的含义; 2、掌握指针变量的定义方法与引用; 3、掌握指向简单变量、数组、字符串和函数的指针的 使用; 4、掌握指针变量作为函数参数进行数据传递的方法; 5、掌握指针型函数的调用方法; 6、了解什么是指向指针的指针; 7、区分指向数组的指针和指针数组的概念 8、掌握指针作为main0函数命令行参数的使用方法;
第8章 指针 1、理解指针的含义; 2、掌握指针变量的定义方法与引用; 3、掌握指向简单变量、数组、字符串和函数的指针的 使用; 4、掌握指针变量作为函数参数进行数据传递的方法; 5、掌握指针型函数的调用方法; 6、了解什么是指向指针的指针; 7、区分指向数组的指针和指针数组的概念; 8、掌握指针作为main()函数命令行参数的使用方法;

§8.1指针的概念 ★变量与地址 内存中每个字节有一个编号一-地址 内存 程序中:inti; 200 float k 2001 Q2002) 编译或函数调用时为其分配内存单元 2003 k 2005 变量是对程序中数据 存储空间的抽象
§8.1 指针的概念 变量与地址 程序中: int i; float k; 内存中每个字节有一个编号-----地址 …... …... 2000 2001 2002 2005 内存 0 2003 i k 编译或函数调用时为其分配内存单元 变量是对程序中数据 存储空间的抽象

变量 指针简介 内存 int x int px 10 ED53 指针 地址 ED53 数据指针px指向变量x §指针也是一个变量,只不过该变量中存储的是另一个对象的内存地址 §如果一个变量存储另一个对象的地址,则称该变量指向这个对象 §由于指针值是数据,指针变量可以赋值,所以一个指针的指向在程序 执行中可以改变。指针pX在执行中某时刻指向变量x,在另一时刻也 可以指向变量y
指针简介 内存 10 int x 地址 ED53 变量 数据 ED53 int px 指针 指针 px 指向变量 x § 指针也是一个变量,只不过该变量中存储的是另一个对象的内存地址 § 如果一个变量存储另一个对象的地址,则称该变量指向这个对象 § 由于指针值是数据,指针变量可以赋值,所以一个指针的指向在程序 执行中可以改变。指针px在执行中某时刻指向变量x,在另一时刻也 可以指向变量y

表示定义指针变量 指针变量 不是运算符 ★指针变量的定义 令一般形式:[存储类型]数据类型指针名; 指针的目标变量的数据类型 合法标识符 int pl, p2 float *q 注意: 1、指针变量名是p1p2不是*p1,*p2 2、指针变量只能指向定义时所规定类型的变量 3、指针变量定义后,变量值不确定,应用前必须先赋值
注意: 1、指针变量名是p1,p2 ,不是*p1,*p2 2、指针变量只能指向定义时所规定类型的变量 3、指针变量定义后,变量值不确定,应用前必须先赋值 指针变量 指针变量的定义 ❖一般形式: [存储类型] 数据类型 *指针名; 指针的目标变量的数据类型 合法标识符 表示定义指针变量 不是‘*’运算符 例 int *p1,*p2; float *q ;

★指针与指针变量 ◆指针:一个变量的地址 ◆指针变量:专门存放地址的变量 指针 2000 整型变量i 2001 10 变量的地址 变量的内容 2002 2003 20044 变量 i pointer 200 -2000 指针变量变量地址(指针) 指向 地址存入 变量‖变量值 指针变量
…... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 指针与指针变量 ❖指 针:一个变量的地址 ❖指针变量:专门存放地址的变量 2000 指针 指针变量 变量的地址 变量的内容 指针变量 变量 变量地址(指针) 变量值 指向 地址存入 指针变量

★&与运算符 1.两个有关的运算符:*、& 形式:&任意变量取地址运算符 指针变量指针运算符+ 含义:&a表示变量a所占据的内存空间的首地址 p表示指针变量p所指向的内存中的数据 void main( l、将指针变量指向被访间的变量;{imta=5b-=3; 如inta=5,pa;pa=&a; int*P; p=&a; 4,4 2、访问所指变量 b=p+5; 取内容:b=*p; printf(“%d”,p); printr("°odn",b) 存内容:*p=10; printf (o/od,o/odn", a, *p); 注意:*p若出现在”=”的右边或者表达式中,则为取内容 p若出现在”=”的左边,则为存内容
&与*运算符 1、将指针变量指向被访问的变量; 如 int a=5,*pa; pa=&a; 2、访问所指变量 取内容: b=*p; printf(“%d”,*p); 存内容:*p=10; 注意:*p若出现在”=”的右边或者表达式中,则为取内容 ; *p若出现在”=”的左边,则为存内容。 10 4,4

如有:inta=2,*p=&a,*q=a; 2.运算规则 printf(%dd\n",*p++, *(q++)); &:优先级相同, p=&a;q=&a; 且右结合 printf(d %d\n",*p,(*q)++)i ※与 !等单目运算符 的优先级相同 结果是:22 ※高于算术运算符*、/、% 32 连连看,找出有等价关系的式子 思考:下列表达式是何含义?inta=5,p=&a; 有什么要求? &*p*&a &P“&a(P)++ 等价于pa a &a“(p++)a++
连连看,找出有等价关系的式子 int a=5,*p=&a; &*p *&a (*p)++ *p++ a &a *(p++) a++

★直接访问与间接访问 ◆直接访问:按变量名存取变量值 ◆间接访问:通过存放变量地址的变量去访问变量 i=3:-0直接访间 2000 整型变量i 2001 20 2002 2003 2004 变量 i pointer 2005 2000 指针变量 2006 i_pointer=20;-间接访问
直接访问与间接访问 ❖直接访问:按变量名存取变量值 ❖间接访问:通过存放变量地址的变量去访问变量 i=3; -----直接访问 指针变量 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 3 *i_pointer=20;-----间接访问 20

例 直接访问 ke*i pointer, 间接访问 2000) 整型变量i 2001 0 2002 一整型变量k 2003 10-…… 2004 变量 i pointer 2005 20 指针变量 2006
指针变量 …... …... 2000 2004 2006 2005 整型变量i 10 变量i_pointer 2001 2002 2003 2000 整型变量k 例 k=i; --直接访问 k=*i_pointer; --间接访问 10 例 k=i; k=*i_pointer;

★指针变量的初始化 一般形式:数据类型*指针名=初始她址值; 例inti; 赋给指针变量 int“p=& 变量必须与已说明过的 类型应一致 int *p=&i; int i: 例inti int*p=&i;用已初始化指针变量作初值 int *q
指针变量的初始化 一般形式: 数据类型 *指针名=初始地址值; 赋给指针变量, 不是赋给目标变量 例 int i; int *p=&i; 变量必须与已说明过的 类型应一致 例 int *p=&i; int i; 例 int i; int *p=&i; int *q=p; 用已初始化指针变量作初值
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 湖南软件职业技术学院:《C语言程序设计》编译预处理命令(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第七章 函数应用程序设计(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第六章 数组(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第五章 循环结构程序设计(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第十章 带参数的函数(危孟君).ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第四章 基本控制结构与导出数据类型.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第六章 指针、引用与动态内存分配.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第八章 继承与派生.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第五章 函数、函数与运算符的重载.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第二章 C++语言初步.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第三章 基本数据类型与基本运算.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第七章 类与对象.ppt
- 《高级语言C++程序设计》教材PPT教学课件(第二版)第一章 绪论(主编:刘景、周玉龙).ppt
- 《高级语言C++程序设计》教材教学实验讲义(第二版)实验1 熟悉和使用vc集成开发环境(IDE).doc
- 恒润科技:《MATLAB 基础与编程入门》第五章 GUIDE 图形用户界面入门.ppt
- 恒润科技:《MATLAB 基础与编程入门》第四章 文件输入与输出.ppt
- 恒润科技:《MATLAB 基础与编程入门》第三章 MATLAB 编程入门.ppt
- 恒润科技:《MATLAB 基础与编程入门》第二章 MATLAB 图形基础.ppt
- 恒润科技:《MATLAB 基础与编程入门》第一章 MATLAB 基础.ppt
- 《计算机软件技术基础》第9九章 函数.ppt
- 湖南软件职业技术学院:《C语言程序设计》第一章 C语言概述(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第二讲 算法(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第六章 数组应用程序设计(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第六章 数组应用程序设计(6-1)一维数组(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第十三章 文件(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第十一章 结构体与共用休(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第十章 指针(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第五章 选择结构程序设计(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第一讲 概述(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第一章 C语言的字符集(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第二章 C语言的数据类型与运算(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第二章 C语言的数据类型与运算(2.1-2.4)数据类型(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第三章 C语言基本语句和顺序结构程序设计(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第四章 选择结构程序设计(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》选择结构程序设计(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》第四章 选择结构程序设计(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》C语言的字符集、标识符与关键字(危孟君).ppt
- 湖南软件职业技术学院:《C语言程序设计》课程总结(危孟君).ppt
- 北京邮电大学电信工程学院计算机技术中心:《C++大学基础教程》课程说明.ppt
- 北京邮电大学电信工程学院计算机技术中心:《C++大学基础教程》第十一章 多态性.ppt