网站大量收购独家精品文档,联系QQ:2885784924

哈工大-的9指针.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
哈工大-的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)

liwenhua00 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档