欢迎来到天天文库
浏览记录
ID:43337713
大小:252.50 KB
页数:60页
时间:2019-10-08
《C 程序设计 第6章指针》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第6章指针6.1指针的概念6.2变量与指针6.3数组与指针6.4字符串与指针6.5函数与指针6.6返回指针值的函数6.7指针数组和指向指针的指针6.8引用6.1指针的概念在高级语言编程中,面对的是变量名。而源程序经过编译处理后,每一个变量在程序执行前,将分配在指定的位置上。程序执行过程中,计算机到与变量名对应的内存地址去访问放在那里的数据。这种按变量的地址直接存取变量的方法称为“直接访问”方式。inta;a180011:FF2Ba=18;还有一种方式,将一个变量的地址放在另一个变量中,这时存取变量,可通过存放地址的变量间接地
2、访问存放变量的内存空间。inta=18;a180011:FF2B0011:FF2Bip这个存放地址的变量称为指针。6.2变量与指针指针变量是一种特殊的变量,它和以前学过的其他类型的变量的不同之处是:用它来指向另一个变量。一般的C++编译系统为每一个指针变量分配4个字节的存储单元,用来存放变量的地址。6.2.1定义指针变量格式:类型*变量名1<,*变量名2>;int*ip;char*cp;6.2.2建立指针建立指针包括定义指针和给指针赋初值。用“&”操作符可以获取变量的地址。inta=5;constintb=3.14;int*
3、ipa=&a;constint*ipb=&b;//常量指针,指向常变量int*constipc=&a;//指针常量,指针本身是常量注意:常数是不可寻址的,但常变量可以。int*iptr=&23;//错不能用一个整数给一个指针变量赋初值。int*iptr=2345;//错6.2.3间接引用指针“*”是乘法,又可以用于定义指针,还可以用于指针的间接引用(“*”的第三种用途)。inta=4;int*ip=&a;cout<<*ip<4、时,称为指针定义符。间接引用的指针既可用于右值,也可用于左值。*ip=58;cout<<&ip<usingnamespacestd;intmain(){int*p1,*p2,*p,a,b;cin>>a>>b;//输入两个整数p1=&a;//使p1指向ap2=&b;//使p2指向bif(a5、cout<<"a="<usingnamespacestd;intmain(){inta=18;int*ip=&a;cout<6、180x22ff740x22ff74180x22ff706.2.5指针运算指针可以进行加减运算。指针加减整数的操作表示空间位置上的挪动,但是挪动的字节数与其数据类型相关:对float指针加6实际增加了24个字节。对longint指针加5实际增加了20个字节。对char指针减7实际减少了7个字节。对double指针减2实际减少了16个字节。同类型的指针可以相互赋值。6.2.6指针作为函数参数函数的参数不仅可以是整型、浮点型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送给被调用函数的形参。例:对输入的两个整数按7、大小顺序输出。要求用函数处理,而且用指针类型的数据作函数参数。#includeusingnamespacestd;voidswap(int*p1,int*p2);//函数的作用是将*p1的值与*p2的值交换intmain(){int*pointer_1,*pointer_2,a,b;cin>>a>>b;pointer_1=&a;//使pointer_1指向apointer_2=&b;//使pointer_2指向bif(a8、nter_1,pointer_2);cout<<"max="<
4、时,称为指针定义符。间接引用的指针既可用于右值,也可用于左值。*ip=58;cout<<&ip<usingnamespacestd;intmain(){int*p1,*p2,*p,a,b;cin>>a>>b;//输入两个整数p1=&a;//使p1指向ap2=&b;//使p2指向bif(a5、cout<<"a="<usingnamespacestd;intmain(){inta=18;int*ip=&a;cout<6、180x22ff740x22ff74180x22ff706.2.5指针运算指针可以进行加减运算。指针加减整数的操作表示空间位置上的挪动,但是挪动的字节数与其数据类型相关:对float指针加6实际增加了24个字节。对longint指针加5实际增加了20个字节。对char指针减7实际减少了7个字节。对double指针减2实际减少了16个字节。同类型的指针可以相互赋值。6.2.6指针作为函数参数函数的参数不仅可以是整型、浮点型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送给被调用函数的形参。例:对输入的两个整数按7、大小顺序输出。要求用函数处理,而且用指针类型的数据作函数参数。#includeusingnamespacestd;voidswap(int*p1,int*p2);//函数的作用是将*p1的值与*p2的值交换intmain(){int*pointer_1,*pointer_2,a,b;cin>>a>>b;pointer_1=&a;//使pointer_1指向apointer_2=&b;//使pointer_2指向bif(a8、nter_1,pointer_2);cout<<"max="<
5、cout<<"a="<usingnamespacestd;intmain(){inta=18;int*ip=&a;cout<6、180x22ff740x22ff74180x22ff706.2.5指针运算指针可以进行加减运算。指针加减整数的操作表示空间位置上的挪动,但是挪动的字节数与其数据类型相关:对float指针加6实际增加了24个字节。对longint指针加5实际增加了20个字节。对char指针减7实际减少了7个字节。对double指针减2实际减少了16个字节。同类型的指针可以相互赋值。6.2.6指针作为函数参数函数的参数不仅可以是整型、浮点型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送给被调用函数的形参。例:对输入的两个整数按7、大小顺序输出。要求用函数处理,而且用指针类型的数据作函数参数。#includeusingnamespacestd;voidswap(int*p1,int*p2);//函数的作用是将*p1的值与*p2的值交换intmain(){int*pointer_1,*pointer_2,a,b;cin>>a>>b;pointer_1=&a;//使pointer_1指向apointer_2=&b;//使pointer_2指向bif(a8、nter_1,pointer_2);cout<<"max="<
6、180x22ff740x22ff74180x22ff706.2.5指针运算指针可以进行加减运算。指针加减整数的操作表示空间位置上的挪动,但是挪动的字节数与其数据类型相关:对float指针加6实际增加了24个字节。对longint指针加5实际增加了20个字节。对char指针减7实际减少了7个字节。对double指针减2实际减少了16个字节。同类型的指针可以相互赋值。6.2.6指针作为函数参数函数的参数不仅可以是整型、浮点型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送给被调用函数的形参。例:对输入的两个整数按
7、大小顺序输出。要求用函数处理,而且用指针类型的数据作函数参数。#includeusingnamespacestd;voidswap(int*p1,int*p2);//函数的作用是将*p1的值与*p2的值交换intmain(){int*pointer_1,*pointer_2,a,b;cin>>a>>b;pointer_1=&a;//使pointer_1指向apointer_2=&b;//使pointer_2指向bif(a8、nter_1,pointer_2);cout<<"max="<
8、nter_1,pointer_2);cout<<"max="<
此文档下载收益归作者所有