电脑基础与电脑网络 (14).ppt

电脑基础与电脑网络 (14).ppt

ID:52349359

大小:384.00 KB

页数:37页

时间:2020-04-04

电脑基础与电脑网络 (14).ppt_第1页
电脑基础与电脑网络 (14).ppt_第2页
电脑基础与电脑网络 (14).ppt_第3页
电脑基础与电脑网络 (14).ppt_第4页
电脑基础与电脑网络 (14).ppt_第5页
资源描述:

《电脑基础与电脑网络 (14).ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、地址作为数据值指针变量数组与指针函数指针(了解)动态分配内存(了解)第7章指针7.1地址作为数据值指针是一种数据类型,用于存放其他值在内存中的地址。在C语言中,任何一个指向能寻出数据的内存位置的表达式称为左值(lvalue)。左值有以下的几条原则:(1)每个左值都存储在内存中,每一个左值都有其内存地址。(2)一旦声明左值,则它的地址不变。(3)因为所保存的数值类型不同,不同左值需要不同大小的内存。(4)左值的地址本身也是数据,也可以在内存中进行操作和存储。例如:inta;如果使用的系统以4字节存储整型变量,这一声明为整数a在内存的某处保留了一个存储空间。例如

2、保留在1000~1003的位置,根据第(4)条原则,与变量a相关的首地址1000本身也是一个数据值。7.2指针变量7.2.1声明指针变量指针也是一种数据类型。指针类型的值是类型为T的对象或函数的地址声明指针变量的语法如下:base-type*pointer-variable;例:Int*p1;7.2.2有关指针的运算符C语言定义了两种用于指针操作的运算符:地址运算符&:&运算符把对应于某个内存中的值的表达式作为其操作数,这个操作数通常是一个变量或一个数组引用。间接运算符*:也称取值运算符。间接运算符的操作数为指针类型的值,返回该指针所指向的左值,这一操作称为

3、对指针间接引用。例:intx,y;int*p1,*p2;x=-42;y=163;p1=&x;p2=&y;7.2.3指针操作#includeintmain(void){inturn[5]={100,200,300,400,500};int*ptr1,*ptr2,*ptr3;ptr1=urn;ptr2=&urn[2];printf("pointervalue,dereferencedpointer,pointeraddress:");printf("ptr1=%p,*ptr1=%d,&ptr1=%p",ptr1,*ptr1,&ptr1)

4、;在c语言中,指针有赋值、求值(或取值)、取指针的地址、指针加上或减去一个整数、指针值自增或自减、求两个指针的差值六种基本操作赋值求值ptr3=ptr1+4;printf("addinganinttoapointer:");printf("ptr1+4=%p,*(ptr1+3)=%d",ptr1+4,*(ptr1+3));ptr1++;指针递增printf("valuesafterptr1++:");printf("ptr1=%p,*ptr1=%d,&ptr1=%p",ptr1,*ptr1,&ptr1);ptr2--;printf("

5、valuesafterptr2--:");printf("ptr2=%p,*ptr2=%d,&ptr2=%p",ptr2,*ptr2,&ptr2);--ptr1;++ptr2;printf("pointersresettooriginalvalues:");printf("ptr1=%p,ptr2=%p",ptr1,ptr2);printf("subtractingonepointerfromanother:");printf("ptr2=%p,ptr1=%p,ptr2-ptr1=%p",ptr2,ptr1,ptr2-pt

6、r1);加法递增递减相减printf("subtractingoneintfromapointer:");printf("ptr3=%p,ptr3-2=%p",ptr3,ptr3-2);return0;}程序的运行结果如下:pointervalue,dereferencedpointer,pointeraddress:ptr1=0012FF6C,*ptr1=100,&ptr1=0012FF68addinganinttoapointer:ptr1+4=0012FF7C,*(ptr1+3)=400valuesafterptr1++:ptr1=0012

7、FF70,*ptr1=200,&ptr1=0012FF68valuesafterptr2--:ptr2=0012FF70,*ptr2=200,&ptr2=0012FF64pointersresettooriginalvalues:ptr1=0012FF6C,ptr2=0012FF74subtractingonepointerfromanother:ptr2=0012FF74,ptr1=0012FF6C,ptr2-ptr1=2subtractingoneintfromapointer:ptr3=0012FF7C,ptr3-2=0012FF74相减7.2.4指针

8、作为函数参数例:通过指针在函数间通信交换两个变量的值

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

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

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