还剩25页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《C语言指针进阶》PPT课件THE FIRSTLESSON OFTHE SCHOOLYEARCONTENTS目录•指针基础•指针与数组•函数与指针•动态内存分配•指针与结构体•指针高级应用01指针基础指针的定义总结词指针是C语言中用于存储变量地址的变量详细描述指针是一种特殊类型的变量,用于存储其他变量的内存地址通过指针,我们可以间接访问和修改变量的值指针的声明与初始化总结词在声明指针时,需要指定指针的类型,同时在声明的同时或之后进行初始化详细描述指针的声明格式为“类型*指针变量名;”,例如“int*ptr;”表示声明一个指向整数的指针初始化时可以将变量的地址赋值给指针,例如“int x=10;int*ptr=x;”指针的运算总结词指针可以进行算术运算和关系运算,以实现更加灵活的地址操作详细描述指针的算术运算包括指针的加法、减法和指针间的减法等,可以用于计算地址偏移量关系运算用于比较两个指针是否相等、判断指针指向的变量是否为空等01指针与数组数组的指针数组名本质上是指向数组名前加一个整数数组第一个元素的指n表示从数组起始位针置向后移动n个位置的指针数组名可以作为指针使用,指向数组的起始位置通过指针访问数组元素通过指针访问数组元素时,需要使用箭头运算符“-”例如,如果p是指向数组元素的指针,那么p-index表示访问数组中下标为index的元素指针访问数组元素的速度比使用下标访问更快,因为下标访问需要计算下标位置指针与二维数组二维数组本质上是一个一维数组,其元素本身是一维数组二维数组的行指针指向一维数组,列指针指向元素例如,如果arr是一个二维数组,那么arr[i]表示第i行的行指针,arr[i][j]表示第i行第j列的元素01函数与指针函数参数传递方式值传递通过拷贝传递参数,函数内部对参数的修改不会影响原始数据引用传递通过引用传递参数,函数内部对参数的修改会影响原始数据指针传递通过指针传递参数,函数内部可以通过指针直接修改原始数据指针作为函数参数01传递指针作为参数可以实现函数对数据的直接操作,提高效率02通过指针参数可以传递大型数据结构,避免数据拷贝03使用指针参数可以传递可变参数,实现更加灵活的函数调用返回指针的函数01返回指针的函数可以返回一个变量的地址,以便在函数外部访问该变量02通过返回指针的函数可以返回多个值或者报告额外的状态信息03返回指针的函数需要谨慎使用,以避免内存泄漏和野指针的问题01动态内存分配使用malloc函数分配内存0102malloc函数用于在堆区动态分malloc函数需要一个整数参数,配指定大小的内存空间,其返回表示需要分配的字节数值为指向所分配内存的指针分配内存后,需要使用指针来访使用malloc函数分配的内存需问和操作这块内存要在使用完毕后手动释放,防止内存泄漏0304使用calloc函数分配内存01calloc函数用于在堆区动态分配指定数量的指定类型对象的内存空间,其返回值为指向所分配内存的指针02calloc函数需要两个整数参数,分别表示需要分配的对象数量和每个对象的大小(以字节为单位)03calloc函数会初始化所分配的内存为零,方便使用04和malloc函数一样,calloc分配的内存也需要在使用完毕后手动释放使用realloc函数调整内存大小01020304如果新的大小大于原来分配realloc函数需要两个参数,的大小,realloc会在原有内realloc函数的返回值是重新realloc函数用于重新分配已分别是需要重新分配的内存存后面继续分配新的空间;分配后的内存指针,如果分分配内存的大小指针和新的大小(以字节为如果新的大小小于原来分配配失败则返回NULL单位)的大小,realloc会裁剪掉多余的部分01指针与结构体结构体指针的定义与初始化结构体指针的定义使用结构体类型来定义一个指针变量,该指针变量指向一个结构体类型的内存地址结构体指针的初始化通过直接赋值或使用malloc函数为结构体指针分配内存空间通过结构体指针访问结构体成员使用箭头运算符(-)通过结构体指针访问结构体成员使用点运算符(.)直接通过结构体变量访问结构体成员动态分配结构体内存使用malloc函数动态分配结构体内存空间使用free函数释放动态分配的结构体内存空间动态分配结构体的注意事项确保分配足够的内存空间以容纳结构体的所有成员,避免内存泄漏和越界访问01指针高级应用指针与函数指针函数指针的定义函数指针的声明函数指针是指向函数的指针变量,可以用来需要先声明函数指针的类型,包括函数的返调用函数回值类型和参数列表函数指针的赋值函数指针的应用可以将函数的地址赋值给函数指针,然后通可以用于实现回调函数、实现动态函数调用过函数指针来调用函数等指针与回调函数回调函数的定义01回调函数是指通过函数指针调用的函数,可以在程序的运行过程中被调用回调函数的实现02需要先定义回调函数的原型,然后在需要使用回调函数的地方,将函数的地址赋值给对应的函数指针回调函数的应用03可以用于实现事件驱动的编程、异步操作等指向指针的指针指向指针的指针的定义指向指针的指针的声明指向指针的指针是指向指针变量的指需要先声明指向指针的指针的类型,针变量包括指向的指针变量的类型指向指针的指针的赋值指向指针的指针的应用可以将指向指针变量的地址赋值给指可以用于实现动态内存分配、修改指向指针的指针向的指针变量等感谢观看THANKSTHE FIRSTLESSON OFTHE SCHOOLYEAR。
个人认证
优秀文档
获得点赞 0