欢迎来到天天文库
浏览记录
ID:59001898
大小:300.00 KB
页数:60页
时间:2020-09-27
《谭浩强版C++程序设计 第6章 指针ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章指针本章要点指针的概念数组与指针字符串与指针函数与指针指针数组和指向指针的指针引用6.1指针的概念1.内存地址计算机的内存储器被划分成一个个的存储单元,这些存储单元按一定的规则编号,这个编号就是存储单元的地址。每个存储单元的大小为一个字节,每个单元有一个唯一的地址。2000…00002.变量的地址在程序中定义的所有变量,都要分配相应的存储单元,不同类型的数据所需要的存储空间的大小不同。系统分配给变量的内存空间的起始单元地址称为该变量的地址。如:intI,K;I=3;K=5;…000020002004IK353.内存单元的访问方式在程序中一般通过变量名访问(存
2、取)内存单元.这种按变量地址存取变量值的方式称为直接存取方式,或直接访问方式.间接存取(间接访问)方式是指将变量I的地址存放在另一个变量J中,通过变量J访问变量I的值.2000…000020002004200635IKJ…4.指针与指针变量指针:一个变量的地址也称为该变量的指针。指针变量:用于存储其它变量的指针(即地址)的变量。指针变量的定义:数据类型*指针变量名;如:int*p1;float*p2;char*p3;6.2.指针变量的使用1.指针变量的赋值通常把被指向的变量的地址赋给指针变量如:int*p1,a=3;p1=&a;&:取地址运算符注意:不能用一个整数
3、给一个指针变量赋值.一个指针变量只能指向同一个类型的变量.20003p1a20006.2.指针变量的使用2.指针变量的引用间接访问指针变量所指向的存储单元.指针运算符(*)如:int*p1,a=3;p1=&a;inta1;a1=*p1;*p1=5;注意:指针变量必须指向具体内存地址才能引用.如:int*p;*p=10;20003p1a2000×例通过指针变量存取变量的值#includevoidmain(){inta,*p1;doubleb,*p2;charc,*p3;p1=&a;p2=&b;p3=&c;*p1=10;*p2=11.2;*p3
4、='A';cout<voidmain(){inta,b;int*p1,*p2,*p;cout<<"请输入两个整数:";cin>>a>>b;p1=&a;p2=&b;if(*p1>*p2){p=p1;p1=p2;p2=p;}cout<<"min="<<*p1<<"max="<<*p2<5、:请输入两个整数:3010min=10max=30&ap1&bp2p30a10b&bp1&ap2&ap30a10b3.指针作为函数的参数指针作为函数的参数,传递的是变量的地址,可以实现地址传递。例6.3指针作为函数参数,被调函数中交换参数值#includevoidswap(int*x,int*y);voidmain(){inta,b;a=10;b=20;swap(&a,&b);cout<6、变量值的变化分析yyb10ax20by&ax&b10temp20ax20by10temp&aax&bb10temp&a&btemp10a20&a&b2010(a)(b)(c)(d)程序运行结果为:20,10比较数值型参数#includevoidswap(intx,inty);voidmain(){inta,b;a=10;b=20;swap(a,b);cout<7、p;temp=x;x=y;y=temp;}注意:值传递时,函数的实参与形参在内存中占用不同的存储空间,值只能由实参传递给形参,而形参的变化并不会影响实参。比较以下函数#includevoidswap(int*x,int*y);voidmain(){inta,b;a=10;b=20;swap(&a,&b);cout<8、y=*te
5、:请输入两个整数:3010min=10max=30&ap1&bp2p30a10b&bp1&ap2&ap30a10b3.指针作为函数的参数指针作为函数的参数,传递的是变量的地址,可以实现地址传递。例6.3指针作为函数参数,被调函数中交换参数值#includevoidswap(int*x,int*y);voidmain(){inta,b;a=10;b=20;swap(&a,&b);cout<6、变量值的变化分析yyb10ax20by&ax&b10temp20ax20by10temp&aax&bb10temp&a&btemp10a20&a&b2010(a)(b)(c)(d)程序运行结果为:20,10比较数值型参数#includevoidswap(intx,inty);voidmain(){inta,b;a=10;b=20;swap(a,b);cout<7、p;temp=x;x=y;y=temp;}注意:值传递时,函数的实参与形参在内存中占用不同的存储空间,值只能由实参传递给形参,而形参的变化并不会影响实参。比较以下函数#includevoidswap(int*x,int*y);voidmain(){inta,b;a=10;b=20;swap(&a,&b);cout<8、y=*te
6、变量值的变化分析yyb10ax20by&ax&b10temp20ax20by10temp&aax&bb10temp&a&btemp10a20&a&b2010(a)(b)(c)(d)程序运行结果为:20,10比较数值型参数#includevoidswap(intx,inty);voidmain(){inta,b;a=10;b=20;swap(a,b);cout<7、p;temp=x;x=y;y=temp;}注意:值传递时,函数的实参与形参在内存中占用不同的存储空间,值只能由实参传递给形参,而形参的变化并不会影响实参。比较以下函数#includevoidswap(int*x,int*y);voidmain(){inta,b;a=10;b=20;swap(&a,&b);cout<8、y=*te
7、p;temp=x;x=y;y=temp;}注意:值传递时,函数的实参与形参在内存中占用不同的存储空间,值只能由实参传递给形参,而形参的变化并不会影响实参。比较以下函数#includevoidswap(int*x,int*y);voidmain(){inta,b;a=10;b=20;swap(&a,&b);cout<8、y=*te
8、y=*te
此文档下载收益归作者所有