第8章善于使用指针

第8章善于使用指针

ID:11257474

大小:2.87 MB

页数:114页

时间:2018-07-11

第8章善于使用指针_第1页
第8章善于使用指针_第2页
第8章善于使用指针_第3页
第8章善于使用指针_第4页
第8章善于使用指针_第5页
资源描述:

《第8章善于使用指针》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、8.1什么是指针8.2指针变量8.3通过指针引用数组8.4通过指针引用字符串8.5提高部分第8章善于使用指针P2108.1什么是指针在定义变量时,系统就给这个变量分配内存单元。编译系统根据程序中定义的变量类型,分配一定长度的空间。P2108.1什么是指针内存区的每一个字节有一个编号,这就是内存单元的“地址”在地址所标志的内存单元中存放数据。P210由于通过地址能找到所需的变量单元,我们可以说,地址指向该变量单元。在C语言中,将地址形象化地称为“指针”。意思是通过它能找到以它为地址的内存单元。8.1什么是指针P210int

2、a,b;ab20002002a=3;3直接访问8.1什么是指针P210inta;3aa_pointer2000a_pointer=&a;间接访问定义特殊变量a_pointer2000通过a_pointer取值8.1什么是指针P210为了表示将数值3送到变量中,可以有两种表达方法:(1)将3直接送到变量a所代表的单元中(2)将3送到变量a_pointer所指向的单元(即a所代表的存储单元)指向就是通过地址来体现的假设a_pointer中的值是变量a的地址(2000),这样就在a_pointer和变量a之间建立起一种联系,即

3、通过a_pointer能知道a的地址,从而找到变量a的内存单元一个变量的地址称为该变量的“指针”例如,地址2000是变量i的指针如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”a_pointer就是一个指针变量。指针变量就是地址变量,用来存放地址的变量,指针变量的值是地址(即指针)“指针”和“指针变量”是不同的概念可以说变量a的指针是2000,而不能说a的指针变量是2000指针是一个地址,而指针变量是存放地址的变量8.2指针变量8.2.1使用指针变量访问变量的例子8.2.2怎样定义指针变量8.2.

4、3怎样引用指针变量8.2.4指针变量作为函数参数P2118.2.1使用指针变量访问变量的例子例8.1通过指针变量访问整型变量。P211#includevoidmain(){inta,b;int*pointer_1,*pointer_2;a=100;b=10;pointer_1=&a;pointer_2=&b;printf(“a=%d,b=%d”,a,b);printf(“*pointer_1=%d,*pointer_2=%d”,*pointer_1,*pointer_2);}定义两个指针变量使p

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

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

7、误pointer_1=&a;正确pointer_3=2000;错误8.2.3怎样引用指针变量P214在引用指针变量时,可能有三种情况:给指针变量赋值。如:p=&a;引用指针变量指向的变量。如有p=&a;*p=1;则执行printf(“%d”,*p);将输出1引用指针变量的值。如:printf(“%o”,p);使p指向a*p相当于a以八进制输出a的地址8.2.3怎样引用指针变量P214要熟练掌握两个有关的运算符:(1)&取地址运算符。&a是变量a的地址(2)*指针运算符(“间接访问”运算符)如果:p指向变量a,则*p就代

8、表a。k=*p;(把a的值赋给k)*p=1;(把1赋给a)例8.2输入a和b两个整数,按先大后小的顺序输出a和b。解题思路:用指针方法来处理这个问题。不交换整型变量的值,而是交换两个指针变量的值。#includevoidmain(){int*p1,*p2,*p,a,b;scanf(“%d,%d”,&

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

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

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