C语言第10讲--特殊数据类型之指针课件.ppt

C语言第10讲--特殊数据类型之指针课件.ppt

ID:57057141

大小:421.50 KB

页数:43页

时间:2020-07-30

C语言第10讲--特殊数据类型之指针课件.ppt_第1页
C语言第10讲--特殊数据类型之指针课件.ppt_第2页
C语言第10讲--特殊数据类型之指针课件.ppt_第3页
C语言第10讲--特殊数据类型之指针课件.ppt_第4页
C语言第10讲--特殊数据类型之指针课件.ppt_第5页
资源描述:

《C语言第10讲--特殊数据类型之指针课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十讲 特殊数据类型——指针变量的地址和指针变量内存里每个字节都有一个编号,相当于房间都有门牌号。变量的地址:每个变量都占据了1个或1个以上的字节,分配给该变量的第1个字节的地址即为该变量的地址,也称为该变量的指针。指针变量:是一种特殊的变量,它存放的内容是另外一个变量的地址。变量的地址和指针变量存放的数值:56整型变量名:a所在内存地址:2000存放的数值:a的地址2000整型指针变量名:p所在内存地址:4000指针变量的定义和赋值定义的一般格式:类型名*指针变量名;如:int*p1,*p2;float*p2;注意:同时定义多个指针变量,勿写成:类型名*指针变量名1,指针变

2、量名2,指针变量名n;如int*p1,p2;这样只是定义了p1为指针变量,而p2为整型变量。另外*不属于变量名的组成部分,而只是说明该变量是指针变量。指针变量的赋值操作:voidmain(){int*p1,*p2;intx;p1=&x;p2=p1;}取地址运算符和指针运算符&:取地址运算符*:指针运算符(或称“间接访问”运算符)例如:&a获取变量a的地址*p获取对指针变量p所指向的存储单元的引用。运算时实际上有两个步骤:1.读取变量p内存放的地址,2.获取该地址所对应的变量的引用。引用指的是既可以得到该存储单元的值,也能对其值进行改变。通过指针变量访问整型变量main(){i

3、nta,b;int*p1,*p2;a=100;b=10;p1=&a;p2=&b;printf(“%d,%d”,a,b);printf(“%d,%d”,*p1,*p2);}课堂练习利用指针实现交换两个数的值。指针变量的加减运算指针变量与指针变量的加减运算“+”运算:不合法。“-”运算:合法,所得到的值为两个地址之间的偏移量。数组与指针一维数组与指针二维数组与指针一维数组的指针一维数组的指针(地址):数组的起始地址,用数组名表示inta[10];a内存用户数据区变量i变量j36地址2000地址2002i20003&i指针/地址变量名地址/指针值变量值一维数组元素的指针1(

4、10.3.1)inta[10];aa+1a+3a+2a+6a+5a+4a+9a+8a+7数组元素的指针(地址):数组元素的地址指 针inta[10];一维数组元素的指针2(10.3.1)指针1aa+1a+3a+2a+6a+5a+4a+9a+8a+7a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]下标法&:地址运算符,表示单元地址指针2&a[0]&a[1]&a[2]&a[3]&a[4]&a[5]&a[6]&a[7]&a[8]&a[9]元素引用元素指针inta[10];一维数组元素的引用2——指针法(10.3.2)aa+1a+3a+2a+6a+5a

5、+4a+9a+8a+7a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]下标法指针法*a*(a+1)*(a+2)*(a+3)*(a+4)*(a+5)*(a+6)*(a+7)*(a+8)*(a+9)*:指针运算符,表示所指向的单元元素引用指针2&a[0]&a[1]&a[2]&a[3]&a[4]&a[5]&a[6]&a[7]&a[8]&a[9]指针1元素指针指向数组元素的指针由于数组内的每个元素相当于一个变量,故指向数组元素的指针变量的定义与前面介绍的方法相同。例如:inta[10];int*p1,*p2;p1=&a[0];p2=&a[3];通过指针

6、引用数组元素inta[10];int*p=&a[0];p+i指向数组a的第i个元素.a[10]a[0]a[3]a[2]a[1]a[4]a[7]a[6]a[5]a[9]a[8]pp+1p+4通过指针引用数组元素inta[10];int*p=&a[0];或int*p=a;则a[2]、*(a+2)、p[2]、*(p+2)这四种引用方法等价。都可以得到对数组a下标为2的元素的引用。指向一维数组元素的指针变量有关一维数组及其指针变量在使用时的注意事项指针变量的值可以改变,即可以使用p++、p+=2、p-=3等,作用是相对于当前位置前移或后移若干个存储单元。(2)数组名本身表示数组的首地

7、址,是常量而不是变量,故只能进行加减运算,但不能进行自加自减运算.一维数组元素输入和输出方法1 —下标法main(){inta[10],i;for(i=0;i<10;i++)scanf("%d",&a[i]);printf("");for(i=0;i<10;i++)printf("%5d",a[i]);printf("");}/*变量i作下标,i的值只能在0~9之间*/例10.5(P212)一维数组元素输入和输出方法2 —地址偏移量法main(){inta[10],i;for(i=0;i<10;

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

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

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