东莞网站设计如何建设银行浙江网站首页
东莞网站设计如何,建设银行浙江网站首页,安宁区网站制作,免费网站建设能做吗系列文章目录 提 文章目录 系列文章目录前言一、二、 总结 前言
指针 系统概念 以及难点 一、指针
1.指针的定义
指针是一种特殊的变量#xff0c;它存储的是内存地址。这种特性使得指针能够直接操作内存#xff0c;实现高效的底层控制。 2.指针的图示理解 指针p 他的值使…系列文章目录提文章目录系列文章目录前言一、二、总结前言指针 系统概念 以及难点一、指针1.指针的定义指针是一种特殊的变量它存储的是内存地址。这种特性使得指针能够直接操作内存实现高效的底层控制。2.指针的图示理解指针p 他的值使一个地址 如果指针指向a则其值就是a的地址那我们指针p本身也有地址**p则指向p的地址2.指针核心操作符ATTENTION1.结合性都是从右到左举例p储存地址则*p指向地址的值也就是aATTENTION间接访问中 *p是指变量p是指针p指向mum的地址 通过改*p从而改mum3.指针算术运算*(p1)是移动1*sizeof(字符类型) pp-- 同理示例ATTENTION:1. *p数组名 则其指向数组第一个元素的位置4.指针与数组1.数组名代表该数组首元素的地址常量指针2.指针可以指向数组元素通过指针可以遍历数组举例arr[i]*(arri)int *Parr图示例别忘了数组是从0开始的哈三种方式遍历数组5.指针数组与数组指针指针数组:存放指针的数组举例int *p[5] 【】优先级高于*因此这个为数组包含5个int*类型的元素。每个元素指向独立的内存区举例6.数组指针定义指向数组的指针;首先 他是一个指针int (*p2)[5];*p2强制结合 所以是指针指向包含5个整数的连续内存块ATTENTIONp21移动整个数组长度20字节二、指针与函数1.函数指针与指针函数C语言默认是值传递函数内修改参数不影响外部变量x,y形参在封装函数中改值不影响外部变量但是使用指针可以实现传址调用在函数内修改外部变量传的是地址并且 封装函数使用*x*y2.函数返回多个值通过传递指针给函数函数可以通过这个指针来修改其指向的值从而返回多个值形参中有两个 指针变量 赋值时指针变量直接赋值a,b相关表达式后续调用函数时 需要FIRST 函数指针定义指向函数的指针变量存储的是函数的入口地址函数代码存储在内存的代码段中函数指针存储的是该代码段的地址;应用场景常用于回调函数、动态调用函数先定义了一个add函数 接着主函数中定义了一个Int*变量名参参 意为把add函数的地址储存在了本变量名中下次可以直接调用变量名指针函数定义返回指针值的函数其返回值是一个指针。 本质上是函数 返回值是指针语法指针类型 函数名(参数列表);int* func(int a);注意有人可能问 不是指针函数吗 返回应该是指针啊 对的 你说的没错 初学者可能把str会误解为数组 实际上数组名就是一个指向数组首地址的指针此函数被赋值给了指针ptr打印的时候应该输入地址 也就是ptr指向结果首位回调函数定义通过函数指针调用的函数。把函数的地址指针作为一个参数传递给另一个函数当这个指针被用来调用所指的函数的时候这个被调用的函数就是回调函数左侧定义四个函数 右边利用函数指针ret是指针变量名pf的结果 cal函数 它接收一个函数指针作为参数在 Calc 内部让用户输入两个整数然后调用传进来的那个函数pf变量名 两个形参对这两个整数做运算结果存在ret中2.动态内存分配和释放定义 在程序运行期间根据需要从堆heap中分配内存块在使用完毕后将其释放回堆中。态分配的内存不会在函数返回时自动释放程序员必须显式地管理这些内存以避免内存泄漏和其他问题。作用灵活性动态内存分配允许程序在运行时根据实际需求分配内存这对于处理不确定大小的数据结构如链表、树、图等非常有用 节省内存动态内存分配可以根据实际需要精确分配内存避免浪费 共享资源动态分配的内存可以在多个函数或模块之间共享从而提高资源利用率。mallco 和 free 函数记得要还回来哦