vc++ 指针.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文档。上传文档
查看更多
vc指针

第8章 指针和引用 指针和指针变量 指针和数组 指针和函数 指针和引用 简单链表 * * 8.1 指针和指针变量 1. 内存地址 2.变量地址 一、指针的概念 2018 5 2018 2010 2011 2012 2013 2000 2001 2002 2003 ‘a’ x char int、float 指针 变量地址(指针) ch int int x; char ch; x=5; ch=‘a’; 注意:内存单元的地址与内存单元中的数据是两个完全不同的概念。 存放指针的变量为指针变量 … … p 二、指针变量的定义及初始化 类型名 *指针变量名; 指针变量的标志 2018 5 2018 2010 2011 2012 2013 2000 2001 2002 2003 ’a’ x ch p char *p; int x; char ch; x=5; ch=’a’; p=ch; “”运算符:取变量的地址 p1 2010 int *p1=x; p 2018 … … 方法 1: 三、指针变量的赋值 将变量的地址赋值给指针变量 int x=10, *p1 = x; // 将指针变量p1指向变量x 方法 2: 同类型的指针变量相互赋值 int *p2,*p3; p2 = x; // 将指针变量p2也指向变量x p3=p2; // p3与p2,p1指向同一内存 2000 2001 2002 2003 x p1 2000 p2 2000 p3 2000 10 方法 3 : 用系统常量标识符NULL(为0)给指针变量赋值 int *p; p=NULL; 0x0012FF7C 0x0012FF7D 0x0012FF7E 0x0012FF7F p1 危险! 方法 4 : 将整型常量强制类型转换成指针后,赋值 int *p1= (int *)0x0012FF7C; // 与 p=0;等价 使指针指向安全位置 四、内存中数据的存取 直接访问:通过变量名直接访问。 间接访问:在一个变量(指针)中存放数据的地址,然 后通过该地址访问。 int a=5, *p = a; couta; cout*p; 取内容运算符:取指针 指向的内存中的数据 2000 2001 2002 2003 变量a 指针p 2000 5 指针与指针变量的比较 (1)指针──即地址。 一个变量的地址称为该变量的指针。通过变量的指针能够找到该变量。 (2)指针变量──专门用于存储变量地址的变量。 指针变量的值就是变量的地址。 指针与指针变量的区别,就是变量值与变量的区别。 课堂练习: 设有变量定义 int a=10; 试定义一个指针变量p,并通过该指针变量使a的值加倍。 int *p=a; *p=*p*2; 五、指针的算术运算 仅限于指针的加、减运算。 指针加或减一个整数n表示指针指向当前内存中相邻的同类型的数据的后面第n个或前面第n个数。 指针的算术运算一般用于指向数组中的特定元素。 六、指针的关系运算 关系运算符“==”或“!=”用于比较两个指针是否指向同一内存地址; 其它关系运算符则主要用于比较同一数组中两个指针所指向元素的先后次序关系。 一个数组有若干个元素,这若干个元素在内存中占据着相邻的地址,而指针就是通过地址来处理数据的,因此,指针和数组的关系比较密切。 8.2 指针和数组 指针变量的值是可以改变的 数组名为整个数组的首地址,可作为一个指针,是一个常量 8.2.1 一维数组与指针 定义了一个数组后,如果再定义一个同类型的指针变量,并且使该指针指向数组的第一个元素,则就可以用该指针来代替数组名使用. int a[6] ={ 0, 1, 2, 3, 4, 5 }, *p; p=a; p[i]与a[i]都有可以表示数组a的第i个元素。 思考: 1. 当p的值发生变化时,如p+=2运算后,p[i]和a[i]是否还 指向同一个值 ? 2. 还有其他方法将指针p指向数组a吗 ? 3. 如果另有指针变量定义float *p1; 能用p1来操作数组a 吗 ? 例:将字符串反序输出 算法分析: 3. 输出字符串 2. 将字符串反序处理 1. 输入字符串 用cin或cin.getline()实现 2.1 设置两指针p1、p2,使p1指向字符串的第一个字符、p2指向字符串的最后一个字符; 2.2 交换p1、p2指向的字符;p1、p2指针分别向字符串中间移动一个元素位 2.3 重复2.2,直到p1= =p2 或p1p2 字符串的特点是其字符

文档评论(0)

yaocen + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档