欢迎来到天天文库
浏览记录
ID:43972833
大小:215.50 KB
页数:26页
时间:2019-10-17
《复杂数据类型》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、复杂数据类型数组、指针、字符串面向对象程序设计语言©2006.02~2006.06二、指针面向对象程序设计语言©2006.02~2006.061.定义大家有没有见过以下的等式?1+1=51+1=9二、指针面向对象程序设计语言©2006.02~2006.061.定义指针就是内存地址码!…100110031005指针:内存中每个字节都有唯一的一个地址码。这个地址码就是指针。二、指针面向对象程序设计语言©2006.02~2006.061.定义我们程序用到的内存是有特定区域划分的!程序代码区静态内存区动态内存区常
2、量静态变量栈(局部变量)堆(动态内存分配)指针:同样的,在这些内存区域中的每个存储单元都有唯一的地址码。但是他们在C/C++表现出来的性质不同。二、指针面向对象程序设计语言©2006.02~2006.061.定义指针&指针变量。50920…100110031005指针变量:用来存放内存地址码的变量。因为内存地址码就是指针,所以称为指针变量。1001:指针;p:指针变量1001p:5005二、指针面向对象程序设计语言©2006.02~2006.062.指针变量的声明如同普通变量一样,用来存放指针的变量,也要
3、事先声明之。int*p;注意:(1)指针变量一定要有类型,不能是孤立的一个*p,即使是存放无类型的指针,也要声明成“void*p;”(2)使用“*”表示“p”不是普通整型变量,而是用来专门存放整型数据的内存地址码。(3)声明指针变量时的数据类型,就是指针变量的类型。二、指针面向对象程序设计语言©2006.02~2006.062.指针变量的声明现在我们来看看不同类型的指针变量。int*p;float*pf;char*pc;内置类型变量的指针变量自定义类型变量的指针变量CDog*pDog;二、指针面向对象程序
4、设计语言©2006.02~2006.062.指针变量的声明现在我们来看看不同类型的指针变量。int**p;复杂(复合)类型变量的指针变量函数类型的指针变量int(*fpAdd)(int,int);二、指针面向对象程序设计语言©2006.02~2006.063.指针变量的初始化指针变量在声明的时候就给它赋值,就是对它初始化。inti=100;int*p=&i;注意:在给指针变量赋值之前一定要存在一个有意义的内存变量或者常量或者函数,否则指针变量的值不可预测,这会造成系统的崩溃。注意:这里又学到一个运算符“&
5、”。这叫“求地址运算符”。把内存变量的首字节地址获取过来。内置类型变量的指针变量二、指针面向对象程序设计语言©2006.02~2006.063.指针变量的初始化指针变量在声明的时候就给它赋值,就是对它初始化。CDogaDog;CDog*pDog=&aDog;注意:这和内置类型变量的指针变量初始化一样。自定义类型变量的指针变量二、指针面向对象程序设计语言©2006.02~2006.063.指针变量的初始化指针变量在声明的时候就给它赋值,就是对它初始化。intarray[10];int*p=array;注意:
6、因为数组名就是数组首地址,因此直接将数组名赋值给一个指针变量是正确的。反而加上“&”运算符是错误的。复合类型变量的指针变量二、指针面向对象程序设计语言©2006.02~2006.063.指针变量的初始化指针变量在声明的时候就给它赋值,就是对它初始化。inti=100;int*p=&i;int**pp=&p;注意:指针变量在内存中也是有地址的,因此,可以定义一个存放指针变量地址的指针变量,称为指针的指针变量。在指针的指针变量初始化的时候,一样要用“&”运算符。复合类型变量的指针变量二、指针面向对象程序设计语
7、言©2006.02~2006.063.指针变量的初始化指针变量在声明的时候就给它赋值,就是对它初始化。intadd(intx,inty);int(*fpAdd)(int,int)=add;注意:函数的名字就和数组的名字是一样的,代表了函数代码在内存中存放的起始地址。因此,在初始化的时候,不需要“&”运算符。函数类型的指针变量二、指针面向对象程序设计语言©2006.02~2006.064.指针变量的使用指针变量被声明了,而且也初始化了,就要使用它。inti=100;int*p=&i;cout<<*p<8、dl;*p=*p+100;cout<<*p<
8、dl;*p=*p+100;cout<<*p<
此文档下载收益归作者所有