欢迎来到天天文库
浏览记录
ID:60849810
大小:585.00 KB
页数:68页
时间:2020-12-23
《C程序设计 第6章培训讲学.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C程序设计第6章指针第6章教学目标►掌握指针的概念和运算规则►掌握用指针访问变量、一维数组和二维数组►用指针处理字符串的方法6.1.1指针和指针变量6.1指针的基本概念1.指针的概念2.指针变量内存单元的编号叫做地址,通常也把这个地址称为“指针”。6.1.1指针和指针变量6.1指针的基本概念1.指针的概念2.指针变量在C语言中,允许用一个变量来存放指针,这种变量称为“指针变量”。6.1.2指针变量的定义1.定义的一般格式2.举例说明6.1指针的基本概念[存储类型]类型说明符*变量名;其中,“*”表示这是一个指针变量,变量名即为定义的指针变量名
2、,类型说明符表示本指针变量所指向的变量的数据类型。一个指针变量只能指向同一种类型的变量,也就是说,不能定义一个既指向一个整型变量又指向一个双精度型变量的指针变量。6.1.2指针变量的定义1.定义的一般格式2.举例说明6.1指针的基本概念例如:int*m1;表示m1是一个指针变量,它的值是某个整型变量的地址;或者说m1指向一个整型变量。至于m1究竟指向哪一个整型变量,应该由指向m1赋予的地址来决定。再例如:staticint*m2;/*m2是指向静态整型变量的指针变量*/float*m3;/*m3是指向浮点型变量的指针变量*/char*m4;/
3、*m4是指向字符型变量的指针变量*/6.1.3指针变量赋值1.变量地址表示方法2.给指针变量赋地址的方法C语言提供了地址运算符“&”,表示变量地址的一般形式为:&变量名;如:&a表示变量a的地址,&b表示变量b的地址。6.1指针的基本概念3.例6.16.1.3指针变量赋值1.变量地址表示方法(1)指针变量初始化的方法。inta;/*定义整型变量a*/int*p=&a;/*定义指针p,并将变量a的地址赋给指针p*/(2)赋值语句的方法。inta;/*定义整型变量a*/int*p;/*定义指针p*/p=&a;/*将变量a的地址赋给指针p*/6.1
4、指针的基本概念2.给指针变量赋地址的方法3.例6.16.1.3指针变量赋值1.变量地址表示方法【例6.1】用指针变量访问变量中的数据。#includemain(){inta,*p;/*定义整型变量a和整型变量指针p*/p=&a;/*指针p指向变量a*/printf("pleaseenteranumber:",*p);scanf("%d",p);/*为指针p所指的存储单元输入数值*/printf("%d",*p);/*输出指针p所指的存储单元的内容*/}6.1指针的基本概念2.给指针变量赋地址的方法3.例6.11501
5、000ap10001001200020012.取内容运算符*3.注意事项取地址运算符“&”是单目运算符,其结合性为自右至左,功能是取变量的地址。在scanf函数中,我们已经认识并使用了&运算符。1.取地址运算符&6.2.1指针运算符6.2指针变量的运算2.取内容运算符*3.注意事项取内容运算符“*”是单目运算符,其结合性为自右至左,通过“*”可以存取指针所指的存储单元的内容。在“*”运算符之后跟的变量必须是指针变量。需要注意的是指针运算符“*”和指针变量说明中的指针说明符“*”不是一回事。在指针变量说明中,“*”是类型说明符,表示其后的变
6、量是指针类型。而表达式中出现的“*”则是一个运算符,用以表示指针变量所指的内容。1.取地址运算符&6.2.1指针运算符6.2指针变量的运算2.取内容运算符*3.注意事项【例6.2】分析下面程序的运行结果。#includemain(){intd,x,*p;/*定义整型变量d、x和整型指针p*/d=10;x=19;p=&x;/*将变量x的地址赋给指针p*/printf("d=%d",*p);}1.取地址运算符&6.2.1指针运算符6.2指针变量的运算程序的运行结果如下:d=192.取内容运算符*3.注意事项(1)取地址运算符
7、&表示变量的地址;而取内容运算符*表示指针所指的内容。(2)运算符&只能用于变量和数组元素。(3)*和&都是单目运算符,两者的优先级相同,结合性均是从右到左。(4)&x不能出现在赋值号的左边。(5),因此不能用&取寄存器变量的地址。(6)被赋值的指针变量前不能再加“*”说明符,如写为*p=&a也是错误的。1.取地址运算符&6.2.1指针运算符6.2指针变量的运算2.取内容运算符*3.注意事项【例6.3】通过指针变量访问字符型变量。#includemain(){charch1,ch2;/*定义字符型变量ch1和ch2*/cha
8、r*p1,*p2;/*定义字符型指针p1和p2*/ch1='A';ch2='B';p1=&ch1;/*指针p1指向变量ch1*/p2=&ch2;/*指针p2指向变量
此文档下载收益归作者所有