欢迎来到天天文库
浏览记录
ID:7682896
大小:512.65 KB
页数:173页
时间:2018-02-22
《c++程序设计指针和引用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第八章指针和引用419指针的概念数据在内存中是如何存取的?系统根据程序中定义变量的类型,给变量分配一定的长度空间。字符型占1个字节,整型数占4个字节.....。内存区的每个字节都有编号,称之为地址。内存单元2000H3的地址2001H2002H5内存单元的内容2003H2004H内存4201、直接访问按变量地址存取变量的值。cin>>i;实际上放到定义i单元的地址中。i2、间接访问将变量的地址存放在另一个单元p中,通过p取出变量的地址,再针对变量操作。3000H2000Hp2000Hi一个变量的地址
2、称为该变量的指针。一个变量的地址称为该变量的指针。如果在程序中定义了一个变量或数组,那么,这个变量或数组的地址(指针)也就确定为一个常量。421变量的指针和指向变量的指针变量变量的指针就是变量的地址,当变量定义后,其指针(地址)是一常量。2000Hinti;&i:2000Hi可以定义一个变量专门用来存放另一变量的地址,这种变量我们称之为指针变量。在编译时同样分配一定字节的存储单元,未赋初值时,该存储单元内的值是随机的。指针变量定义的一般形式为:指针类型变量名类型标识符*变量名int*i_point;
3、422指针变量同样也可以赋值:inti,*i_point;3000H2000Hi_point=&i;2000Hi_pointiinti;也可以在定义指针变量时赋初值:int*i_point=&i;一个指针变量只能指向同一类型的变量。即整型指针变量只能放整型数据的地址,而不能放其它类型数据的地址。*在定义语句中只表示变量的类型是指针,没有任何计算意义。*在语句中表示“指向”。&表示“地址”。4233000H2000H2000H3i_pointi表示intinti;i;类型intint**i_point
4、i_point=&i;=&i;**i_pointi_point=3;=3;表示指向424指针变量的引用指针变量只能存放地址,不要将非地址数据赋给指针变量。int*p,i;p=100;p=&i;voidmain(void)非法ab10100{inta=10,b=100;int*p1,*p2;指针变量赋值&a&bp1=&a;p2=&b;p1p2cout<5、n(void){inta,b;abint*p1,*p2;指针变量赋值10100p1=&a;p2=&b;通过指针对*p1=10;*p2=100;变量赋值&a&bp1p2cout<6、<*p1<<‘t’<<*p2<>a>>b;&a&b&b&a&b&a&ap1=&a;p2=&b;p1p2pif(a7、t’<<*p2<8、相同,都是右结合性。inta=3,*p;a2000H2004H2008Hp=&a;4357&ap++*p++(*p)*p=*p+1a=4431++,--,*优先级相同,都是右结合性。inta=3,*p;a2000H2004H2008Hp=&a;3572004H&ap*++p*(++p),首先:p=p+1,然后取*p。即取p所指的下一个int单元的内容。表达式为5p=2004H432指针变量作为函数参数:函数的参数可以是指针类型,它的作用是将一个变量的地址传送到另一个函
5、n(void){inta,b;abint*p1,*p2;指针变量赋值10100p1=&a;p2=&b;通过指针对*p1=10;*p2=100;变量赋值&a&bp1p2cout<6、<*p1<<‘t’<<*p2<>a>>b;&a&b&b&a&b&a&ap1=&a;p2=&b;p1p2pif(a7、t’<<*p2<8、相同,都是右结合性。inta=3,*p;a2000H2004H2008Hp=&a;4357&ap++*p++(*p)*p=*p+1a=4431++,--,*优先级相同,都是右结合性。inta=3,*p;a2000H2004H2008Hp=&a;3572004H&ap*++p*(++p),首先:p=p+1,然后取*p。即取p所指的下一个int单元的内容。表达式为5p=2004H432指针变量作为函数参数:函数的参数可以是指针类型,它的作用是将一个变量的地址传送到另一个函
6、<*p1<<‘t’<<*p2<>a>>b;&a&b&b&a&b&a&ap1=&a;p2=&b;p1p2pif(a7、t’<<*p2<8、相同,都是右结合性。inta=3,*p;a2000H2004H2008Hp=&a;4357&ap++*p++(*p)*p=*p+1a=4431++,--,*优先级相同,都是右结合性。inta=3,*p;a2000H2004H2008Hp=&a;3572004H&ap*++p*(++p),首先:p=p+1,然后取*p。即取p所指的下一个int单元的内容。表达式为5p=2004H432指针变量作为函数参数:函数的参数可以是指针类型,它的作用是将一个变量的地址传送到另一个函
7、t’<<*p2<8、相同,都是右结合性。inta=3,*p;a2000H2004H2008Hp=&a;4357&ap++*p++(*p)*p=*p+1a=4431++,--,*优先级相同,都是右结合性。inta=3,*p;a2000H2004H2008Hp=&a;3572004H&ap*++p*(++p),首先:p=p+1,然后取*p。即取p所指的下一个int单元的内容。表达式为5p=2004H432指针变量作为函数参数:函数的参数可以是指针类型,它的作用是将一个变量的地址传送到另一个函
8、相同,都是右结合性。inta=3,*p;a2000H2004H2008Hp=&a;4357&ap++*p++(*p)*p=*p+1a=4431++,--,*优先级相同,都是右结合性。inta=3,*p;a2000H2004H2008Hp=&a;3572004H&ap*++p*(++p),首先:p=p+1,然后取*p。即取p所指的下一个int单元的内容。表达式为5p=2004H432指针变量作为函数参数:函数的参数可以是指针类型,它的作用是将一个变量的地址传送到另一个函
此文档下载收益归作者所有