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

C 教程_ch3_4.doc

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

本文由泉蜜柑贡献 ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 3.6 指 针 为了理解什么是指针,必须弄清楚数据在内 为了理解什么是指针, 存中是怎样存放的,又是怎样被读取出来的. 存中是怎样存放的,又是怎样被读取出来的. 回顾: 定义变量 回顾 如果在程序中定义了变量,在编译时就给该变量分 如果在程序中定义了变量, 配内存单元来存储变量的值. 配内存单元来存储变量的值.系统根据程序中定义 的变量类型,分配一定长度的空间. 变量类型,分配一定长度的空间. 如:int a=50; 解析:编译器会为其分配四个字节的内存单元,假设为 解析:编译器会为其分配四个字节的内存单元, 0x3FF007100x3FF00713, 0x3FF007100x3FF00713,则这四个字节的内存单元中 存储的值为50.我们称变量a的地址为0x3FF00710, 存储的值为50.我们称变量a的地址为0x3FF00710,变量 值为50. 值为50.   通过操作符取得变量的地址 通过 操作符取得变量的地址 coutaendl; 0x3FF00710 指针概念 根据C++语言的规定,可以定义这样一 根据C++语言的规定 语言的规定, 种特殊变量:它是专门存放变量地址的, 种特殊变量:它是专门存放变量地址的, 称之为指针变量(简称指针). 称之为指针变量(简称指针). int *ip=a; (也称指针ip指向了a) 也称指针ip指向了 指向了a 解析:指针ip的变量值为 的地址0x3FF00710 的变量值为a 解析:指针ip的变量值为a的地址0x3FF00710 coutipendl; 0x3FF00710 指针变量的类型及定义 指针也需要类型,它所存储的那个变量类型, 指针也需要类型,它所存储的那个变量类型, 就称为指针的类型 指针变量的定义方式: 指针变量的定义方式: 指针类型 * 指针变量名; 指针变量名; 如:char *cp; //定义指向字符型数的指针cp //定义指向字符型数的指针 定义指向字符型数的指针cp   注意 定义中的*可以居左,居右,或居中. 定义中的*可以居左,居右,或居中. 要同时定义多个相同类型的指针,则为: 要同时定义多个相同类型的指针,则为: int *p1, *p2; 指针的大小:一个指针变量占用多少内存空间? 指针的大小:一个指针变量占用多少内存空间? 不管指针指向什么类型的变量,它的大小总是固定的:只要能 不管指针指向什么类型的变量,它的大小总是固定的: 放得下一个地址就行! 32位机中存放一个地址需要 个字节. 位机中存放一个地址需要4 放得下一个地址就行!在32位机中存放一个地址需要4个字节. int* pInt; int* char* char* pChar; bool* bool* pBool; float* float* pFloat; double* double* pDouble; 试验: sizeof(pInt),sizeof(pChar),sizeof(pBool), 试验: sizeof(pInt),sizeof(pChar),sizeof(pBool), sizeof(pFloat),sizeof(pDouble)的值分别为多少 sizeof(pFloat),sizeof(pDouble)的值分别为多少? 的值分别为多少? 给指针变量赋值 (1) int k = 100; (2) int* p; int* (3) p = k; //将变量k的地址赋给 p //将变量 将变量k (也称:p指向k) 也称: 指向k 此处指针赋值的结果,就是让它存储下另一个变 此处指针赋值的结果, 量的地址.简称指向另一个变量. 量的地址.简称指向另一个变量. 注意 操作符: 操作符: ( 取地址操作符 ) : 表示取实体的地址 , 取地址操作符) 表示取实体的地址, 后面 必须跟具有空间地址的实体 ip = 23; 23; // error,字面值无实际存储空间 error, 设有int x=3 试验如下几种写法正确与否: 设有int x=3; 试验如下几种写法正确与否: ① ② ③ ip=(x+1 ip=(x+1); int *ip=(x++); *ip=(x++); int *ip=(++x); *ip=(++x); 习题 若有以下定义,则说法错误的是( 若有以下定义,则说法错误的是( int a=100,*p=a

文档评论(0)

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

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

1亿VIP精品文档

相关文档