C【语言】指针

发布时间:2026/8/4 18:37:51
C【语言】指针 我们今天来学习指针内存程序运行过程中可以访问到的内存储存空间计算机为了方便内存一字节为单位堆内存进行编号地址计算机管理内存是给内存的编号指针指针即为地址地址即为指针指针指向了一个具体空间指针变量变量保地址的变量需要占用内存空间··1.指针基础1.指针变量的定义基类型*变量名 基类型该指针指向的空间存储的数据类型 int float double void 构造类型 *类型说明符说明后面的变量是一个指针 变量名遵循标识符的命名规则 习惯用 p 开头 int*pmax char*ptmpsizeofpmaxsizeof64位占八个bit32 四指针变相保存的地址是目标的首地址2.指针变量初始化和复制野指针指针刚开始没有初始化或者指向一个已经释放的空间的指针有风险避免野指针那我们就可以给指针进行初始化 {给指针初始化为null} int * pnull或者给指针进行初始化3.指针运算符* ——————指针运算符用来访问指针变量的内存空间中的数据*指针变量------》指针降级为基类型普通变量1.*指针运算符 只能发拿工资啊指针变量前面2.*指针变量访问指针变量指向的数据3.*指针变量访问的字节数取决于该指针的基类型pnumprintf“%d”*p——————取地址运算符 变量名获取某个变量首地址1.只能给变量取地址不能给常量或者表达式取地址2.给某个变量取地址时获取的是这个变量首字节的地址4.指针算术运算 - * / % ---指针1-指针2 表示两个元素之间的元素个数地址之间字节差/基类型指针1表示从当前地址向后偏移sizeof基类型字节--指针-15.指针作为函数参数1.被调函数中想要修主调函数中定义的变量传递该变量的地址2.被调函数想要返回多个结果是可以传递主调函数定义的变量地址地址指向的空间可以保存被调函数被调的结果6.指针和一位整形数组的关系数组的数组名位数组的首元素地址注意1.数组名为地址常量右值可以赋值给别人但是不能被赋值。a[0]a[0] ----*aa[1] ----*(a1)a[2] ----*(a2)a[n] ----*(an)一维整形数组作为函数参数传递void print_array(int a[], int len){}void print_array(int *pa, int len){}