哈工大-9指针讲解.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哈工大-9指针讲解

void Swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } 指针pTemp未初始化 指针pTemp指向哪里未知 对未知单元写操作是危险的 void Swap(int *x, int *y) { int *pTemp; *pTemp = *x; *x = *y; *y = *pTemp; } 永远要清楚: 每个指针指向了哪里 指针指向的内容是什么 void Swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } 指针pTemp被赋了值 但交换的是地址值 不是指针指向单元的内容 void Swap(int *x, int *y) { int *pTemp; pTemp = x; x = y; y = pTemp; } 9.5用指针变量作函数参数的程序实例 【例9.7】计算并输出最高分及相应学生的学号 【例9.7】计算并输出最高分及相应学生的学号 9.5用指针变量作函数参数的程序实例 9.5用指针变量作函数参数的程序实例 【例9.7】计算并输出最高分及相应学生的学号 真正的原因:普通变量作函数参数按值调用 不能在被调函数中改变相应的实参值 9.5用指针变量作函数参数的程序实例 【例9.7】计算并输出最高分及相应学生的学号 9.5用指针变量作函数参数的程序实例 【例9.7】计算并输出最高分及相应学生的学号 9.6函数指针及其应用 函数指针(Function Pointers)就是指向函数的指针(Pointer to a Function) 指向函数的指针变量存储的是函数在内存中的入口地址 编译器将不带()的函数名解释为该函数的入口地址 数据类型 (* 指针名)(); 例如:int (*p)(); 常见错误: 忘记了前一个(),写成 int *p(); /*声明一个函数名为p、返回值是整型指针的函数*/ 忘掉了后一个(),写成 int (*p); /*定义了一个整型指针*/ 定义时后一个括号内的参数类型与指向的函数参数类型不匹配 * */46 A pointer is a variable whose value is a memory address representing the location of the chunk of memory on either the run-time stack or on the heap. 第9章 指针 哈尔滨工业大学 计算机科学与技术学院 苏小红 sxh@hit.edu.cn 本章学习内容 ? 指针数据类型 ? 指针变量的定义和初始化 ? 取地址运算符,间接寻址运算符 ? 按值调用与按地址调用,指针变量作函数 参数 ? 函数指针 void Swap(int x,int y) { int temp; temp = x; x = y; y = temp; } int main() { int a, b; a = 5; b = 9; Swap(a, b); printf(a=%d,b=%d,a,b); return 0; } 程序 1:简单变量作函数参数 例7.9未能解决的问题:两数互换 void Swap(int *x,int *y) { int temp; temp = *x; *x = *y; *y = temp; } int main() { int a, b; a = 5; b = 9; Swap( a, b ); printf(a=%d,b=%d,a,b); return 0; } 程序 2:指针变量作函数参数 指针为函数提供修改变量值的手段 9.1变量的内存地址 变量的地址(Address) 变量名 内存:计算机内的存储部件 所有指令和数据都保存在内存里 速度快,可随机访问,但掉电即失 编译或函数调用时为变量分配内存单元 int a=0; 0x0037b000 0 0 0 0 Contents Contents Contents Contents Contents Contents Contents 变量的值 a 某存储区域 9.1变量的内存地址 变量的地址 内存中的每个字节都有唯一的编号(地址) 地址是一个十六进制无符号整数 其字长一般与主机相同 地址按字节编号,按类型

文档评论(0)

33ggoup + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档