还剩27页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《善于使用指针》ppt课件•指针概述•指针的声明与初始化•指针的运算•指针与数组目录•指针与函数•动态内存分配与指针•指针的高级应用contents01CATALOGUE指针概述指针的定义指针是一种变量,用指针变量在声明时必于存储其他变量的地须明确其指向的数据址类型它包含一个内存地址,通过这个地址可以访问和修改变量的值指针的作用通过指针可以间接访问和修改指针可以用于实现复杂的数据指针在函数参数传递中可以避变量的值,提高代码的灵活性结构,如链表、树等免数据的拷贝,提高效率和可读性指针的常见类型01020304指针变量数组指针函数指针结构体指针用于存储其他变量的地址指向数组的第一个元素的指针指向函数的指针,可以用来调指向结构体的指针,可以用来用函数访问结构体的成员02CATALOGUE指针的声明与初始化指针的声明例如int*ptr;声明了一个指向整型指针是用于存储其他变量地址的变量变量的指针声明指针时,需要指定指针所指向变量的类型指针的初始化初始化指针时,需要将变量的地可以通过取变量地址运算符例如int num=10;int*ptr址赋值给指针获取变量的地址=num;将变量num的地址赋值给指针ptr指针的解引用解引用指针是指获取指针所指向通过使用*运算符可以解引用指例如int value=*ptr;将指针变量的值针ptr所指向的值赋给变量value03CATALOGUE指针的运算指针的算术运算指针算术运算包括指针的加法、减法、乘法和除法等指针的加法可以用于串联数组元素,指针的减法可以用于计算两个指针之间的距离指针算术运算的注意事项指针算术运算的结果必须是一个有效的指针,不能指向无效的内存地址,否则会导致程序崩溃指针的关系运算关系运算符包括等于、不等于、大于、小于等这些运算符可以用于比较两个指针的值,判断它们是否相等或者哪个指针指向的内存地址更大关系运算的应用场景关系运算在判断指针是否越界、查找链表中特定元素的位置等方面有广泛应用指针的位运算位运算符包括与、或、异或等这些运算符可以对指针所指向的内存地址进行位运算操作位运算的应用场景位运算在处理二进制数据、实现加密算法等方面有广泛应用04CATALOGUE指针与数组数组的指针010203数组指针的概念数组指针的初始化数组指针的运算数组的指针是指向数组第可以通过将数组名赋值给可以通过加减法运算来访一个元素的指针,可以通指针变量来初始化数组指问数组中的元素过数组名来获取针指向数组的指针指向数组的指针的概念指向数组的指针是指向整个数组的指针,可以通过将数组名赋值给指针变量来获取指向数组的指针的初始化可以通过将数组名赋值给指针变量来初始化指向数组的指针指向数组的指针的运算可以通过加减法运算来访问整个数组指针数组指针数组的概念指针数组的初始化指针数组的应用指针数组是指包含指向不可以通过将不同类型数据可以通过指针数组来同时同类型数据的指针变量的的地址赋值给指针变量来访问多个不同类型的数据数组初始化指针数组05CATALOGUE指针与函数指针作为函数参数01指针作为函数参数可以传递大型数据结构,如数组、字符串等,避免数据拷贝,提高效率02通过指针参数,函数可以修改调用者变量的值,实现更灵活的函数调用返回指针的函数返回指针的函数可以返回一个动态分配的内存地址,或者返回指向静态或全局变量的指针使用返回指针的函数时需要格外小心,因为内存管理问题可能导致内存泄漏或野指针函数指针函数指针是指向函数的指针变量,可以用来存储和传递函数的地址通过函数指针,可以实现回调函数和动态函数调用,提高代码的灵活性和可复用性06CATALOGUE动态内存分配与指针使用malloc函数进行动态内存分配语法定义void*mallocsize_t size;malloc函数用于在堆区动态分配内02存,返回一个指向分配内存的指针参数0103size_t类型的大小,表示要分配的内存大小示例int*ptr=int*mallocsizeofint;0504返回值如果分配成功,返回一个指向分配内存的指针;如果分配失败,返回NULL使用calloc函数进行动态内存分配示例int*ptr=int*calloc10,返回值sizeofint;如果分配成功,返回参数一个指向分配内存的语法指针;如果分配失败,num表示要分配的返回NULL定义void*callocsize_t元素个数,size表示calloc函数用于在num,size_t size;每个元素的大小堆区动态分配内存,并初始化为0使用realloc函数调整动态内存大小参数void指针指向要调整大小的内存语法返回值块,size_t类型的新大小如果调整成功,返回一个指向调void*reallocvoid*ptr,size_t整后内存的指针;如果调整失败,newSize;返回NULL定义示例realloc函数用于调整已分配内int*newPtr=int*reallocptr,存的大小newSize;07CATALOGUE指针的高级应用指向指针的指针指向指针的指针是指一个指针变量,它存储的地址是指向另一个指针变量的地址这种指针在处理指针数组、动态内存分配和函数指针等场景中非常有用指向指针的指针的声明和定义方式是在变量名前加两个星号(),例如int pp;表示一个指向指针的指针通过指向指针的指针,可以方便地操作指针数组,例如通过一个指向指针的指针遍历整个数组函数指针数组函数指针数组是指一个数组,数组中的每个元素都是一个函数指针函数指针是指向函数的指针变量,通过函数指针可以调用函数函数指针数组常用于实现动态绑定和回调函数等机制,使得程序更加灵活和可扩展声明和定义函数指针数组的方式是在数组名前加上函数返回类型和参数列表,例如int*func_array[]表示一个函数指针数组,其中每个元素都指向一个没有参数和返回值的函数。
个人认证
优秀文档
获得点赞 0