还剩29页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
指针类型什么是指针类型?指针类型是存储内存地址的变量类型指针指向其他变量所在的内存地址通过指针可以间接访问和操作变量指针的定义内存地址指向数据指针是一个变量,它存储着另一个变量的内存地址通过指针,我们可以直接访问内存中的数据,并对其进行操作指针的声明数据类型1指定指针指向的数据类型指针名2用于标识指针变量星号3表示这是一个指针变量指针声明语法数据类型*指针名;例如int*ptr;声明一个名为ptr的整数型指针变量指针的初始化将指针指向一个变量1int*ptr=#将指针指向一个常量2const int*ptr=#将指针指向一个空地址3int*ptr=NULL;指针的赋值直接赋值1将一个指针变量的值赋给另一个指针变量取地址赋值2将一个变量的地址赋给指针变量访问指针指向的变量解引用运算符示例使用*运算符来访问指针指向的变量例如,如果指针p指向一个名为num的整数变量,那么*p将返回num的值指针的基本运算符取地址运算符间接寻址运算符*获取变量的内存地址访问指针指向的变量的值算术运算符、、、比较运算符、、+-++==!=、、、--==用于对指针进行加减运算,以访用于比较两个指针的值,判断它问相邻内存单元们指向的内存地址是否相同指针与数组的关系数组名作为指针指针访问数组元素12数组名在很多情况下可以当作可以通过指针进行数组元素的指针使用,指向数组首元素的访问,例如*p+i地址指针运算3指针可以进行加减运算,实现对数组元素的遍历指针与二维数组数组名行指针指针数组二维数组的数组名代表数组的首地址,指二维数组的每一行都可以看作一个一维数可以用指针数组来存储二维数组的每一行向第一行第一个元素组,数组名代表该行数组的首地址首地址,方便访问指针与函数参数值传递地址传递函数接收参数的副本,修改参数函数接收参数的地址,修改参数不会影响原变量会影响原变量指针传递将指针作为参数传递给函数,函数可以修改指针指向的值指针与函数返回值返回指针指针作为返回值函数可以返回指针,以便将内存地址传递给调用者指针本身可以作为函数返回值,用于传递内存地址动态内存分配内存分配1程序运行时申请内存空间灵活管理2根据需求动态调整内存大小避免浪费3释放不再使用的内存函数malloc动态内存分配函数原型12malloc函数用于在程序运行时从堆内存中分配一块指定大void*mallocsize_t size;小的内存空间返回值使用示例34如果分配成功,则返回指向分配内存块的指针;否则返回int*ptr=int*mallocsizeofint;NULL函数calloc分配内存初始化为0函数realloc重新分配内存内存地址realloc函数用于调整已分配内存块的大小如果新的内存大小大如果新的内存大小小于旧的大小,则会重新分配一个较小的内存于旧的大小,则会分配新的内存块,并复制旧内存块的内容到新块,旧内存块中的数据将被保留,但内存地址可能会发生变化内存块中函数free释放内存避免内存泄漏12free函数用于释放动态分配的释放不再使用的内存可以防止内存它接受一个指向要释放内存泄漏,从而提高程序效率的内存块的指针作为参数安全操作3在释放内存之前,确保指针不再指向有效的内存地址,以防止程序崩溃指针与字符串字符串本质上是字符数组,而指针可以指向字符数组的第一个元素,从而实现对字符串的操作指针可以方便地遍历字符串中的字符,并进行修改、比较等操作使用指针可以实现对字符串的动态分配和释放,提高内存利用率指针与结构体结构体指针指针数组结构体指针指向结构体变量的内存地址,可以用于访问结构体成指针数组可以存储多个结构体变量的地址,方便进行批量操作员结构体指针定义结构体指针访问结构体成员可以使用指针变量来存储结构体可以使用指针操作符-来访问变量的地址定义结构体指针时结构体指针指向的结构体成员,需要指定指针类型为结构体类型动态分配内存可以使用malloc函数为结构体动态分配内存,并使用结构体指针指向分配的内存块指针数组定义作用指针数组是指一个数组,其元素是指针类型指针数组可以存储多个指针,从而方便地管理和访问多个变量函数指针函数指针声明函数指针函数指针是一个指向函数的指针它存储着函数在内存中的地址,声明函数指针需要指定函数的返回类型和参数列表以便我们可以调用该函数回调函数定义作用回调函数是指一个函数作为参数传递给另一个函数,并在该函数回调函数允许在调用函数中完成特定任务后执行自定义操作,例内部被调用的函数如在事件发生时触发特定操作指针与文件操作文件指针文件操作函数12一个指向文件的指针,用于访fopen、fclose、fread、问和操作文件内容fwrite、fprintf、fscanf等函数,用于打开、关闭、读写文件内容文件操作类型3包括读文件、写文件、追加文件、随机访问文件等操作文件指针文件指针是一个指向文件的指针,它存储了文件在内存中的位置通过文件指针,程序可以对文件进行读写操作文件指针需要在程序开始时打开文件,并在程序结束时关闭文件函数fopen打开文件文件模式fopen函数用于打开一个文件,fopen函数的第二个参数指定了并返回一个指向该文件的指针打开文件的模式,例如读模式r、写模式w等文件指针fopen函数返回的文件指针可以用于访问文件的内容,例如读取数据或写入数据函数fclose关闭文件参数返回值fclose函数用于关闭已打开的文件,fclose函数只有一个参数指向要关如果成功关闭文件,fclose函数返回0释放文件资源闭的文件的指针否则,返回一个非零值和函数fread fwritefreadfwrite12从文件中读取数据到内存中,将内存中的数据写入文件中,并返回实际读取的字节数并返回实际写入的字节数和函数fprintf fscanffprintf函数用于向文件写入格式化fscanf函数用于从文件读取格式化数据数据指针的常见错误悬垂指针野指针内存泄漏指向已释放内存的指针,会导致程序崩溃未初始化的指针,可能指向任何内存位置未释放动态分配的内存,会导致内存逐渐,引发不可预知错误减少,最终导致程序崩溃总结与练习指针的应用指针是一种强大的工具,广泛应用于各种编程任务,包括内存管理、数据结构和函数调1用指针的类型2了解不同类型的指针,例如指向整型、浮点型或字符型的指针指针的基本概念3指针的定义、初始化、赋值和访问指针指向的变量。
个人认证
优秀文档
获得点赞 0