c语言第10章(谭浩强)

c语言第10章(谭浩强)

ID:36324585

大小:413.50 KB

页数:80页

时间:2019-05-09

c语言第10章(谭浩强)_第1页
c语言第10章(谭浩强)_第2页
c语言第10章(谭浩强)_第3页
c语言第10章(谭浩强)_第4页
c语言第10章(谭浩强)_第5页
资源描述:

《c语言第10章(谭浩强)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章指针指针可以有效地表示复杂的数据结构;能动态的分配内存、使用字符串和数组;能在调用函数时获得1个以上的结果;能直接处理内存单元地址等。掌握指针的应用,可以使程序简洁、紧凑、高效。1§10.1地址和指针的概念一、变量的地址计算机内存区的每一个字节都有一个编号。在对程序进行编译时,系统会给变量分配内存单元,这个内存单元的地址就是变量的地址。系统根据不同的数据类型分配不同字节的空间。内存单元地址内存单元内容不同i3jk69变量名200020022004地址编译时是把变量名转换为变量的地址如:scanf(“%d”,&i);printf(“%d”,j);k=i+j;2

2、二、变量的访问方式1.直接访问按变量地址存取变量值的方式称为“直接访问”方式。2.间接访问假如定义变量j存放变量i的地址。i32000变量名2000地址j如:j=&i;先找到j得到变量i的地址找到变量i的存储单元对它进行存取访问3三、指针变量由于通过地址可以找到所需变量的存储单元,所以c语言把地址称为指针。指针:一个变量的地址称为该变量的指针。例如:地址2000是变量i的指针。指针变量:专门存放变量地址的变量叫指针变量。注意:指针和指针变量的区别如:j为指针变量,它存放整型变量i的地址我们称,指针变量j指向整型变量i4§10.2变量的指针和指向变量的指针变量变量的指

3、针就是变量的地址。存放变量地址的变量是指针变量,用来指向另一个变量。5注意:在c程序中用*表示指向,若定义了i_pointer为指针变量,那么*i_pointer就是i_pointer指向的那个变量。*i_pointer相当于i都代表3(值)/*指针i_pointer指向了变量i*/一、如何定义一个指针变量形式:基类型*指针变量名指针只能指向基类型规定的类型变量例如:inti,j;floatx;int*i_pointer,*j_pointer;那么,如何使一个指针变量指向另一个变量呢?可以:i=3;i_pointer=&i;j_pointer=&j;6在定义指针变量

4、时注意:(1)定义指针变量时,变量前面的*是表示该变量是指针型的,其变量名是i_pointer,而不是*i_pointer(2)定义指针变量必须指定其类型。为什么?当i_pointer++时,加1代表多少字节才能确定。总结:一个指针变量只能指向同一类型的变量。如:floata;int*pointer;pointer=&a;(错)7二、指针变量的引用指针变量中只能存放地址(指针)两个运算符:1.&:取地址运算符如:&a/*变量a的地址*/2.*:指针运算符,取其指向的内容*pointer表示求指针变量pointer所指向变量的内容(值)。如:inti=3,c;int*

5、p;/**表示定义指针型变量p*/p=&i;/*指针变量p指向了变量i*/c=*p;强调*定义和引用时的区别8输出:100,10100,10*pointer_1=&a;*pointer_2=&b;例10.1通过指针变量访问整型变量main(){inta,b;int*pointer_1,*pointer_2;/*区分定义和引用时的区别*/a=100;b=10;pointer_1=&a;pointer_2=&b;printf(“%d,%d”,a,b);printf(“%d,%d”,*pointer_1,*pointer_2);}9说明:若:p1=&a;/*假设p

6、1和p2是指针*/p2=&*p1;p2=&a/*p2也指向了a*/(1)&*p1的含义是什么?&和*优先级相同,按自右至左的方向结合,先进行*p1的运算,就是变量a,再执行&运算。&*p1&a(2)*&a的含义是什么?先进行&a的运算,得a的地址,再进行*运算,就是变量a。*&aa或*&a*p110说明:若:p1=&a;(3)(*p1)++a++(*p1)++必须有括号,若没有括号:*p1++/*优先级别相同,为右结合*/*(p1++)/*由于++在后,先使用p1,得到*p的值,p1再加1,p1指向了下一个地址*/11运行:5,9a=5,b=9max=9,min=5

7、注意:a和b并没有交换,保持原值,但是p1和p2的值改变了。例10.2输入a和b两个整数,按大小的顺序输出.main(){int*p1,*p2,a,b;scanf(“%d,%d”,&a,&b);p1=&a;p2=&b;if(a

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。