欢迎来到天天文库
浏览记录
ID:45057476
大小:532.50 KB
页数:94页
时间:2019-11-08
《c指针和动态内存分配》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Lecture9:PointersandDynamicMemory(指针和动态内存分配)LearnC++throughEnglishandChineseChapterNine:PointersandDynamicMemory(指针和动态内存分配)Variableaddress(变量的地址)Pointervariables(指针变量)Thedereferenceoperator*(解引用运算符*)Usingconstwithpointers(使用const修饰指针变量)Pointersandone-dimensionalarrays(指针和一维数组)Pointersand
2、multi-dimensionalarrays(指针和多维数组)2Pointerstostructures(指向结构体的指针)Pointerstoclassobjects(指向类对象的指针)Pointersasfunctionarguments(指针变量作为函数实参)Dynamicmemoryallocation(动态内存分配)ChapterNine:PointersandDynamicMemory(指针和动态内存分配)39.1Variableaddress(变量地址)EveryvariableobjectusedinaC++programisstoredinaspec
3、ificplaceinmemory.Eachlocationinmemoryhasauniqueaddress,inthesamewaythateveryhouseinastreethasauniqueaddress.(在C++程序中使用的每个变量和对象,都存储在内存中特定的存储单元中。每个存储单元都有唯一的地址,就像街道旁的每个房子都有唯一的地址一样。)4Variableaddress(变量地址)内存空间的访问方式通过变量名访问通过地址访问地址运算符:&例:intvar;则&var表示变量var在内存中的起始地址5#include#include<
4、iomanip>usingnamespacestd;voidmain(){intvar1=1;floatvar2=2;cout<<"var1hasavalueof"<5、Pointervariables(指针变量)Apointervariableisavariablethatholdstheaddressofanothervariable.(指针变量是存放另一变量地址的变量)data_type*variable_name;int*int_ptr;float*float_ptr;其中,“*”表示后面声明的变量是指针类型的变量。指针变量一旦被赋值,我们就说该指针变量有了指向。“数据类型”可以是任意类型,指的是指针所指向的对象类型,这说明了指针所指向的内存单元可以用于存放什么类型的数据,我们称之为指针的类型。区分:int*p1,*p2;与in6、t*p1,p2;8Pointervariables(指针声明例:inti;int*i_pointer=&i;指向整型变量的指针使用例1:i=3;例2:*i_pointer=3;语法形式存储类型数据类型*指针名=初始地址;例:int*pa=&a;20003i_pointer*i_pointeri2000注意事项用变量地址作为初值时,该变量必须在指针初始化之前已说明过,且变量类型应与指针类型一致。可以用一个已赋初值的指针去初始化另一个指针变量。9说明:在指针变量定义中,*是一个说明符,它表明其后的变量是指针变量,如在int*p;语句中,p是指针变量,而不要认为“*p”是指针7、变量;指针变量定义时指定的数据类型不是指针变量本身的数据类型,而是指针变量所指向的对象(或称目标)的数据类型,指针变量只能指向定义时所规定类型的变量;定义后值不确定,而指针变量一旦被赋值,就有了有效的指向对象;指针变量并不固定指向一个变量,可指向同类型的不同变量;指针变量和普通变量的共同点是:它们都能存放数据,而又有自己的地址。不同的是:普通变量中直接存放通常意义下的数据,而指针变量中存放的是地址。10…...…...2000200420062005整型变量i10变量i_pointer2001200220032000指针指针变量变量的内容
5、Pointervariables(指针变量)Apointervariableisavariablethatholdstheaddressofanothervariable.(指针变量是存放另一变量地址的变量)data_type*variable_name;int*int_ptr;float*float_ptr;其中,“*”表示后面声明的变量是指针类型的变量。指针变量一旦被赋值,我们就说该指针变量有了指向。“数据类型”可以是任意类型,指的是指针所指向的对象类型,这说明了指针所指向的内存单元可以用于存放什么类型的数据,我们称之为指针的类型。区分:int*p1,*p2;与in
6、t*p1,p2;8Pointervariables(指针声明例:inti;int*i_pointer=&i;指向整型变量的指针使用例1:i=3;例2:*i_pointer=3;语法形式存储类型数据类型*指针名=初始地址;例:int*pa=&a;20003i_pointer*i_pointeri2000注意事项用变量地址作为初值时,该变量必须在指针初始化之前已说明过,且变量类型应与指针类型一致。可以用一个已赋初值的指针去初始化另一个指针变量。9说明:在指针变量定义中,*是一个说明符,它表明其后的变量是指针变量,如在int*p;语句中,p是指针变量,而不要认为“*p”是指针
7、变量;指针变量定义时指定的数据类型不是指针变量本身的数据类型,而是指针变量所指向的对象(或称目标)的数据类型,指针变量只能指向定义时所规定类型的变量;定义后值不确定,而指针变量一旦被赋值,就有了有效的指向对象;指针变量并不固定指向一个变量,可指向同类型的不同变量;指针变量和普通变量的共同点是:它们都能存放数据,而又有自己的地址。不同的是:普通变量中直接存放通常意义下的数据,而指针变量中存放的是地址。10…...…...2000200420062005整型变量i10变量i_pointer2001200220032000指针指针变量变量的内容
此文档下载收益归作者所有