- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
int x, y ; void num int a15,b10,x,y; xa-b;ya+b; A 12, 2b 5, 20c 2, 12d 不确定 void main int a7 , b5 ;xa+b ;ya-b ;num ;printf“%d,%d\n”, x, y ; √ 14. 请选择正确的运行结果: 第八章 指针 8.1 指针和指针变量的概念 8.2 指向变量的指针变量 8.3 指针与数组 8.4 字符串的指针和指向字符串的指针变量 8.1 指针和指针变量的概念 在程序中定义了一个变量, 该变量在内存中就要占一定的存储单元, 这个空间的大小由变量的类型决定。 用户数据区内存 存储单元的内容 就是变量的值。 存储单元的地址指针 8.1 指针和指针变量的概念 指针: 就是变量的内存地址, 是一个常量。 指针变量: 就是存放另一变量内存地址指针的变量。当把变量 i 的地址存入指针变量 p 后, 我们就说这个指针变量p指向变量 i。 int i10,*p ; pi ; 指针变量p 10 整型变量i 2000 指向 2000 i的地址存入p 指针变量的值是某个变量的内存地址。 8.1 指针和指针变量的概念 内存用户数据区 2004 变量 i 变量 j 变量 k 2000 2000 变量 ip 2008 3010 3 6 9 int i3, j6, k9, *ip; ipi ; 直接访问: 直接通过变量名存取变量的值如: i3 ; 间接访问: 通过指向某变量的指针变量访问如: int i10, x, *p;pi;x*p;i 2000 3 对内存单元的访问方式: 8.2 指向变量的指针变量 8.2.1 指针变量的定义 8.2.2 指针变量的引用 8.2.3 指针变量的初始化 8.2.4 指针变量作为函数参数 8.2.1 指针变量的定义 格式:类型说明符 *指针变量名 ;如:int *p1; //定义p1为指向整型变量的指针变量char *p2; //定义p2为指向字符变量的指针变量 指针变量的类型, 是指针所指向的变量的类型, 而不是自身的类型。 说明: 1 在指针定义中, 一个*号只表示定义一个指针。如int *p1, p2 ;则p2被定义为整型变量而非整型指针变量 定义多个指针变量时, 每个变量前都必须有 *。int *p1, *p2 ; 2 指针变量中只能存放地址 指针, 不能和整型变量混淆。如:int *ip;ip 1000; 指针变量可取值为0NULL, 表示该指针变量不指向任何变量。 × 说明: 3 指针变量的类型与它所指向变量的类型必须一致。 如: void mainint *p1 ;//定义p1应指向一个整型变量float x3.33333 ;p1x ;//将一个实型变量的地址赋给p1printf“%f\n”, *p1 ;p1只能指向整型变量, 不能指向实型和字符型变量。 × 8.2.2 指针变量的引用 在C语言中, 指针变量可以通过一对互逆的运算符进行引用。 取地址运算符── “” 引用运算符 ── “*”1. ─ 取地址运算符 作用: 获取变量或数组元素的地址例: int i, *p1, *p2, a[5];p1i ;p2a[4]; 注意: 不能对常量、表达式进行“”运算。例: p168;p1i+1; × 2. * ─ 指针运算符(间接访问运算符) 作用: 获得该指针所指向变量的值。如:int i100, *pi;pii;printf“%d\n”, *pi ;//间接访问pi所指向的内存单元, 输出变量i的值100 注意: 非指针变量不能使用指针运算符, *只能作用于地址。如: printf“%d”, *i ; × 8.2.2 指针变量的引用 可以看出: printf“%d\n”, *pi ; 等同于printf“%d\n”, i ;*pii , pii 因此, 可以通过pi来改变i的原始值。如: *pi150; 等同于 i150; 例8-1 #include stdio.h void main int a50, *p;//声明整型指针变量p pa;//赋值给指针变量p,让p指向变量a printf“*p%d\n”, *p; //取指针p所指地址的内容 *p100; printf“a%d\n”, a; printf“%X %X %X %X\n”, a, p, *p, *p; 输出结果:*p50a10019CA 19CA 19CA 19CA * 和 是互反的 格式:
文档评论(0)