c语言善于利用指针.ppt

c语言善于利用指针.ppt

ID:51052013

大小:3.96 MB

页数:213页

时间:2020-03-18

c语言善于利用指针.ppt_第1页
c语言善于利用指针.ppt_第2页
c语言善于利用指针.ppt_第3页
c语言善于利用指针.ppt_第4页
c语言善于利用指针.ppt_第5页
资源描述:

《c语言善于利用指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章善于利用指针8.1指针是什么8.2指针变量8.3通过指针引用数组8.4通过指针引用字符串8.5指向函数的指针8.6返回指针值的函数8.7指针数组和多重指针8.8动态内存分配与指向它的指针变量8.9有关指针的小结8.1指針是什么如果在程序中定义了一个变量,在对程序进行编译时,系统就会给该变量分配内存单元编译系统根据程序中定义的变量类型,分配一定长度的空间例如,VC++为整型变量分配4个字节,对单精度浮点型变量分配4个字节,对字符型变量分配1个字节8.1指针是什么内存区的每一个字节有一个编号,这就是“地址”,它相当于旅馆中的房间号。在地址所标识的内存单元中存放数据,这相当

2、于旅馆房间中居住的旅客一样。由于通过地址能找到所需的变量单元,我们可以说,地址指向该变量单元。将地址形象化地称为“指针”务必弄清楚存储单元的地址和存储单元的内容这两个概念的区别例如:inti=3,j=6,k;printf(“%d”,i);通过变量名i找到i的地址2000,从而从存储单元读取3inti=3,j=6,k;k=i+j;从这里取3将9送到这里从这里取6直接存取inti=3,j=6,k;定义特殊变量i_pointer将i的地址存到这里间接存取i_pointer=&i;*i_pointer=50;50i200032000i_pointer*i_pointer20003直

3、接存取间接存取为了表示将数值3送到变量中,可以有两种表达方法:(1)将3直接送到变量i所标识的单元中,例如:i=3;(2)将3送到变量i_pointer所指向的单元(即变量i的存储单元),例如:*i_pointer=3;其中*i_pointer表示i_pointer指向的对象指向就是通过地址来体现的假设i_pointer中的值是变量i的地址(2000),这样就在i_pointer和变量i之间建立起一种联系,即通过i_pointer能知道i的地址,从而找到变量i的内存单元由于通过地址能找到所需的变量单元,因此说,地址指向该变量单元将地址形象化地称为“指针”。意思是通过它能找到

4、以它为地址的内存单元一个变量的地址称为该变量的“指针”例如,地址2000是变量i的指针如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”i_pointer就是一个指针变量。指针变量就是地址变量,用来存放地址的变量,指針变量的值是地址(即指针)“指针”和“指针变量”是不同的概念可以说变量i的指针是2000,而不能说i的指针变量是2000指针是一个地址,而指针变量是存放地址的变量8.2指针变量8.2.1使用指针变量的例子8.2.2怎样定义指针变量8.2.3怎样引用指针变量8.2.4指针变量作为函数参数8.2.1使用指针变量的例子例8.1通过指针变量访问整型

5、变量。解题思路:先定义2个整型变量,再定义2个指针变量,分别指向这两个整型变量,通过访问指针变量,可以找到它们所指向的变量,从而得到这些变量的值。#includeintmain(){inta=100,b=10;int*pointer_1,*pointer_2;pointer_1=&a;pointer_2=&b;printf(“a=%d,b=%d”,a,b);printf(“*pointer_1=%d,*pointer_2=%d”,*pointer_1,*pointer_2);return0;}定义两个指针变量使pointer_1指向a使pointe

6、r_2指向b直接输出变量a和b的值间接输出变量a和b的值#includeintmain(){inta=100,b=10;int*pointer_1,*pointer_2;pointer_1=&a;pointer_2=&b;printf(“a=%d,b=%d”,a,b);printf(“*pointer_1=%d,*pointer_2=%d”,*pointer_1,*pointer_2);return0;}此处*与类型名在一起。此时共同定义指针变量此处*与指针变量一起使用。此时代表指针变量所指向的变量8.2.2怎样定义指针变量定义指针变量的一般形式为

7、:类型*指针变量名;如:int*pointer_1,*pointer_2;int是为指针变量指定的“基类型”基类型指定指针变量可指向的变量类型如pointer_1可以指向整型变量,但不能指向浮点型变量8.2.2怎样定义指针变量下面都是合法的定义和初始化:float*pointer_3;char*pointer_4;inta,b;int*pointer_1=&a,*pointer_2=&b;*pointer_1=&a;错误pointer_3=&a;错误pointer_1=&a;正确pointer_3=2000;错误8

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

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

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