浅论c语言中指针的教学

浅论c语言中指针的教学

ID:25202471

大小:53.00 KB

页数:4页

时间:2018-11-18

浅论c语言中指针的教学_第1页
浅论c语言中指针的教学_第2页
浅论c语言中指针的教学_第3页
浅论c语言中指针的教学_第4页
资源描述:

《浅论c语言中指针的教学》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、浅论C语言中指针的教学.freel;变量的类型不一样,内存为各自分配存储空间也不一样。由于变量n是字符型数据,所以内存分配其1个字节的存储单元;变量d是浮点型数据,所以内存分配其4个字节的存储单元;变量m是整型数据,所以内存分配其2个字节的存储单元。所谓变量的地址就是内存为各变量所分配的存储空间的第一个字节单元的地址。即地址就是用来标识数据的存储单元的一种数据类型,方便用户对存储在各自单元中的数据进行正确的访问,在C语言中就将地址称为指针。指针可以用来指向变量、结构体//数组及其元素以及指针等。二、区分变量、变量名、变量的地址和变量值为了更好的理解指针这种类型的数据,我们先来理解一下变

2、量、变量名、变量的地址和变量值的区别。所谓的变量即命名的内存空间。变量在内存中占有一定空间,用于存放各种相应类型的数据;所谓的变量名即给内存空间所取的一个容易记忆的名字;所谓的变量的地址即变量所使用的内存空间的地址(内存单元的编号);所谓的变量值即所对应的内存单元中存放的数值。三、指针变量的定义、赋值和引用(一)指针变量的定义格式:基类型*变量名;例如:int*n;/*定义一个指向整数据的指针变量n*/char*m;/*定义一个指向字符型数据的指针变量m*/float*p;/*定义一个指向浮点型数据的指针变量p*/注意:C语言所有的变量必须是先定义然后再使用。指针变量也必须如此,为了表

3、示指针变量是存放地址的一种特殊变量,所以在定义变量时会在变量名前加“*”号;指针变量的基类型表示指针变量所指向数据的类型,因各数据类型占用的存储空间不一样,指针变量的某些操作具有特殊的含义。如指针变量加1,不是纯粹的加1个字节,而是加一个所指向变量的字节个数,例如:int*p,b=100;p=其中执行p++;指的是p值加2个字节。(二)指针变量的赋值方法(1)变量的地址赋值给指针变量,例如:inta,*p;p=(2)相同类型的指针变量之间赋值,例如:inta,*p1,*p2;p1=p2=p1;(3)赋空值NULL,例如:int*p1=NULL;(三)指针变量的具体使用首先区分“”运算符

4、和“*”运算符。“”运算符表示取变量的地址,“*”运算符表示访问指针变量所指向的变量的值。在定义指针变量时”*”是指针变量的标志,没有特殊含义,但在具体使用中要注意,在指针变量前加了”*”,表示取其所指向变量的值。从变量名获得变量地址用“”运算符,从地址获得地址指向的数据用“*”运算符。例如:inta=3,*p=具体访问数据时,可以按变量名直接访问,如:a=3;而利用指向变量的的指针去访问属于间接访问,即变量a的地址(指针)存放在指针变量p中,p=a(p指向a),然后利用指针变量p进行变量a的访问*p=3,这就是间接访问。四、指针变量可以作为函数的参数指针变量和其它数据类型的变量一样也

5、作为函数参数,区别只是传递的内容是一个地址值。而且可以通过这个地址值间接改变实参、形参所共同指向的变量的值。例如:输入a,b,交换a,b数据后输出。voidfun(int*p1,int*p2){inttemp;temp=*p1;*p1=*p2;*p2=temp;}main(){inta=3,b=5,*pa,*pb;pa=pb=fun(pa,pb);printf(“sp;temp=*p1;*p1=*p2;*p2=temp;}main(){inta=3,b=5,*pa,*pb;pa=pb=fun(pa,pb);printf(“swaped:/n”);printf(“a=%d,b=%d/n”

6、,a,b);}五、总结本文主要介绍了指针的基本概念及其使用。由于指针这种数据类型比较灵活,所以学生刚开始使用时容易出错,可以通过指导学生上机调试程序,弄清程序中的细节,区分指针与其它数据类型的区别,累积编程得经验,以达到熟练的使用它。

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

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

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