第8章指针.docx
- 文档编号:26613747
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:72
- 大小:45.45KB
第8章指针.docx
《第8章指针.docx》由会员分享,可在线阅读,更多相关《第8章指针.docx(72页珍藏版)》请在冰豆网上搜索。
第8章指针
第8章指针-1-
一、指针概述-1-
二、指针与一维数组-3-
三、指针与二维数组-5-
四、指针与字符串-9-
五、指针与函数-10-
六、指针数组与多级指针-11-
习题8-13-
习题8答案-15-
补充题-18-
补充题答案-35-
第8章指针
一、指针概述
1.指针的概念
在计算机中,对一个内存单元的访问(即存取数据)是通过地址来实现的,地址“指向”需要操作的内存单元。
因此在C语言中,把地址形象地称为指针。
如变量a的指针就是变量a的地址。
2.指针变量
(1)指针变量的定义
一般形式:
类型标识符*变量名;
例如:
int*p1,*p2;
定义了2个指向int型数据的指针变量p1、p2,即它们只能存放int型变量的地址。
在定义指针变量时可以对其进行初始化,例如:
inta;
int*p=&a;
或
inta,*p=&a;
指针变量p中存放了变量a的地址。
(2)指针变量的引用
指针变量的使用与两个运算符“&”、“*”有密切关系。
&:
取地址运算符,用于求变量在内存中的地址,运算符的操作对象必须是存储单元(如变量、数组元素等)。
*:
指针运算符(或称间接访问运算符),间接访问指针变量指向的对象。
指针运算符的操作对象必须是指针。
例如:
inta=6,*pa;/*定义pa为指向int型数据的指针变量*/
pa=&a;/*将a的地址赋给pa*/
*pa=28;/*将28赋给pa指向的变量a,*pa即为a*/
(3)使用指针应注意的几种情况
1)在指针变量中只能存储地址
例如:
inta,*p,*q;
p=2000;/*不正确*/
q=&a;/*正确*/
2)初始化指针变量与用赋值语句给指针变量赋值在表示方法上的区别
语句“inta,*p=&a;”与“inta,*p;p=&a;”是等价的。
但“inta,*p;*p=&a;”中的赋值语句是错误的。
3.指针运算
指针也是一种数据类型,对于指针类型的数据,它只能做以下几种运算。
(1)指针之间的赋值运算
指针变量之间可以进行赋值运算,但必须是同一类型。
例如:
inta,b,*pi=&a;/*初始化pi为a的地址*/
floatx,*p1,*p2=&x;
p1=p2;/*正确*/
p1=pi;/*错误,赋值运算符左右两边指针类型不同*/
(2)指针与整数的加、减运算
一个指针与一个整数进行加、减运算,其结果仍是一个指针。
一般来说,当指针指向数组时,指针加、减整数操作才有意义。
如果指针p是指向数组中的某个元素,加上整数n后,新指针p+n指向后续的第n个元素。
例如:
inta[4]={1,2,3,4},*pa;
pa=a;/*数组名a是地址常量,其值是数组的首地址,即&a[0]*/
pa=pa+2;/*执行赋值后,pa指向元素a[2]*/
4.指针作为函数的参数
例8.1编写函数swap1,交换两个变量的值。
程序如下:
#include
voidmain()
{floata,b;
voidswap1(float*x,float*y);/*函数声明,参数为指针类型*/
scanf("%f%f",&a,&b);
swap1(&a,&b);/*把a、b的地址传给形参*/
printf("a=%.1fb=%.1f\n",a,b);
}
voidswap1(float*x,float*y)/*定义形参为指针变量*/
{floatt;
t=*x;*x=*y;*y=t;/*交换指针x、y所指向的对象*/
}
程序运行情况:
3.45.6↙
a=5.6b=3.4
二、指针与一维数组
1.一维数组元素的表示
对数组元素的引用除了用下标表示法外,也可以用指针表示法来实现。
(1)下标表示法和指针表示法
若定义一维数组为:
inta[5];则要引用数组a的第i+1个元素(i从0开始编号),可以用下述两种方法:
●下标表示法:
a[i]
●指针表示法:
*(a+i)
这两种方法是等价的。
(2)用指针变量引用一维数组元素
将数组元素的地址存放在指针变量中,通过指针变量引用数组中的各元素。
例8.2用指针变量给一维数组元素赋值,并输出各元素的值及元素之和。
程序如下:
#include
voidmain()
{inta[10],i,j,s;
int*p;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 指针