谭浩强版C程序的设计第6章节指针.ppt

谭浩强版C程序的设计第6章节指针.ppt

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

第6章 指针 本章要点 指针的概念 数组与指针 字符串与指针 函数与指针 指针数组和指向指针的指针 引用 6.1 指针的概念 1. 内存地址 计算机的内存储器被划分成一个个的存储单元,这些存储单元按一定的规则编号,这个编号就是存储单元的地址。 每个存储单元的大小为一个字节,每个单元有一个唯一的地址。 2. 变量的地址 在程序中定义的所有变量,都要分配相应的存储单元,不同类型的数据所需要的存储空间的大小不同。 系统分配给变量的内存空间的起始单元地址称为该变量的地址。 如: int I,K; I=3;K=5; 3.内存单元的访问方式 在程序中一般通过变量名访问(存取)内存单元.这种按变量地址存取变量值的方式称为直接存取方式,或直接访问方式. 间接存取(间接访问)方式是指将变量I的地址存放在另一个变量J中,通过变量J访问变量I的值. 4. 指针与指针变量 指针:一个变量的地址也称为该变量的指针。 指针变量:用于存储其它变量的指针(即地址)的变量。 指针变量的定义: 数据类型 *指针变量名; 如: int *p1; float *p2; char *p3; 6.2. 指针变量的使用 1.指针变量的赋值 通常把被指向的变量的地址赋给指针变量 如: int *p1, a=3 ; p1 = a; : 取地址运算符 注意: 不能用一个整数给一个指针变量赋值. 一个指针变量只能指向同一个类型的变量. 6.2. 指针变量的使用 2.指针变量的引用 间接访问指针变量所指向的存储单元. 指针运算符(*) 如: int *p1, a=3 ; p1 = a; int a1; a1=* p1; * p1=5; 注意:指针变量必须指向具体内存地址才能引用.如: int *p; *p=10; 例 通过指针变量存取变量的值 #include iostream.h void main() { int a, *p1; double b, *p2; char c, *p3; p1 = a; p2 = b; p3 = c; *p1 = 10; *p2 = 11.2; *p3 = A; cout a endl; cout b endl; cout c endl; } 例6.2 输入a和b两个数,按从小到大的顺序输出 #include iostream.h void main() { int a, b; int *p1, *p2, *p; cout 请输入两个整数:; cin a b; p1 = a; p2 = b; if( *p1 *p2 ) { p = p1; p1 = p2; p2 = p; } cout min= *p1 max= *p2 endl; } 3.指针作为函数的参数 指针作为函数的参数,传递的是变量的地址,可以实现地址传递。 例6.3 指针作为函数参数,被调函数中交换参数值 程序运行过程中变量值的变化分析 比较数值型参数 #include iostream.h void swap(int x, int y); void main() { int a, b; a = 10; b = 20; swap(a, b); cout a , b endl; } 比较以下函数 #include iostream.h void swap(int *x, int *y); void main() { int a, b; a = 10; b = 20; swap(a, b); cout a , b endl; } 1. 指针运算 指针运算包括算术运算、关系运算与赋值运算。 指针可以与整数进行加减运算,结果与指针所指向的数据类型有关。p+n表示指针p当前所指向位置后面第n个同类型数据的地址, p-n表示指针p当前所指向位置前面第n个同类型数据的地址。 例 指针与整数的加减运算 #include iostream.h void main() { int a, *p1,*p2; do

文档评论(0)

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

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

1亿VIP精品文档

相关文档