- 3
- 0
- 约4.82千字
- 约 51页
- 2018-11-22 发布于河南
- 举报
哈工大苏小红版_C语言_课件_chart9_pointer
本章主要内容 指针变量的定义和初始化 指针变量的使用 传值调用与传地址调用 指针变量作函数参数 函数指针 二重指针 指针变量的定义和初始化 指针的引出 内存中的地址按字 节编号,每个字节的 存储单元均对应一个 地址 指针变量的定义和初始化 指针的引出 变量的地址 变量在内存中所占存储空间的首地址 变量的值 变量在存储空间中存放的数据内容 变量的存取 通过变量的地址访问变量的值 指针变量的定义和初始化 指针变量的定义 指针 表示变量的地址的一种数据类型 指针变量就是变量的存储地址 指针变量的定义方法 类型关键字 * 指针变量名; 指针变量的定义和初始化 指针变量的初始化 将一个地址变量赋给指针变量 指针变量只能指向同类型的变量 指针变量的定义和初始化 指针变量的初始化 未初始化的指针变量为随机值 野指针 可能会造成数据的误操作,引发严重后果 未确定初始值的指针变量的初始化 将其初始化为NULL NULL表示空,零值(定义于stdio.h) 本章主要内容 指针变量的定义和初始化 指针变量的使用 传值调用与传地址调用 指针变量作函数参数 函数指针 二重指针 指针变量的使用 直接寻址和间接寻址 直接寻址 直接变量名或者变量的地址存取变量的内容的访问方式 间接寻址 通过指针变量间接存取它所指向的变量的访问方式 间接运算符“*”用来得到指针变量所指向的变量的值 指针变量的使用 间接寻址运算符”*” 向指针指向的内存单元赋值 读取指针指向内存单元的值并赋给其它变量 指针变量的使用 指针的使用原则 永远清楚每个指针指向了哪里,指针必须指向一块有意义的内存 永远清楚每个指针指向的对象的内容是什么 永远不要使用未经初始化的指针变量 指针变量的使用 有关指针的运算 指针的各种运算与其所指向的基类型有关 指针的移动字节数以其基类型所占有的字节数为基本单位 指针变量的使用 有关指针的运算 本章主要内容 指针变量的定义和初始化 指针变量的使用 传值调用与传地址调用 指针变量作函数参数 函数指针 二重指针 传值调用与传地址调用 使用函数实现交换两个数 传值调用与传地址调用 传值调用 将函数调用语句中的实参的一份副本传给函数的形参 简单的值的传递,实参的值没有发生变化 传值调用与传地址调用 传地址调用 将变量的地址传递给函数的形参 形参和实参指向了同一个内存地址,对形参的操作同时影响了实参的值 传值调用与传地址调用 用传地址调用改写交换两数程序 传值调用与传地址调用 用传地址调用改写交换两数程序 传值调用与传地址调用 用传地址调用改写交换两数程序 本章主要内容 指针变量的定义和初始化 指针变量的使用 传值调用与传地址调用 指针变量作函数参数 函数指针 二重指针 指针变量做为函数参数 例9.7 从键盘输入某班学生某门课程的成绩(每班人数最多不超过40人,具体人数由键盘输入),计算并输出最高分及相应学生的学号 本章主要内容 指针变量的定义和初始化 指针变量的使用 传值调用与传地址调用 指针变量作函数参数 函数指针 二重指针 函数指针 函数的入口地址 程序也存储在内存中,与数据一样 函数的第一条指令的地址,称为函数的入口地址 编译器将不带()的函数名解释为函数的入口地址 调用函数时,实际就是转到函数的入口地址,去执行入口地址的第一条指令 函数指针 函数指针 指向函数的指针 指向了函数的第一条指令的地址,即存储的是函数的入口地址 这里可以将函数理解为一个变量,只是这个变量是一段可执行的指令 使用函数指针可以编写更通用、更灵活的程序 函数指针 函数指针的定义 数据类型 (* 指针名)(参数列表); 定义了一个函数指针add,它指向了一个函数,此函数返回值的数据类型为整型,并具有两个整型参数 函数指针 函数指针的定义 常见错误 定义了一个函数add,函数返回值为指向整型数据的指针,并具有两个整型参数 定义了一个指向整型的指针 函数指针 函数指针的使用 本章主要内容 指针变量的定义和初始化 指针变量的使用 传值调用与传地址调用 指针变量作函数参数 函数指针 二重指针 真正的原因:普通变量作函数参数按值调用 不能在被调函数中改变相应的实参值 指针变量做为函数参数 例9.7 指针变量做为函数参数 例9.7 指针变量做为函数参数 例9.7 int (*add)(int a,int b); 数据类型 指针名 参数列表 int *add(int a,int b); int (*add); int add(int a,int b); int main() { int (*padd)(); int a,b
原创力文档

文档评论(0)