当前位置: 首页 > news >正文

C语言指针

指针

就是保存地址的变量

指针变量

变量的值是内存的地址,普通变量的值是实际的值,指针变量的值是具有实际值的变量的地址

*是一个单目运算符,用来访问指针的值所表示的地址上的变量,它可以做右值也可以做左值

指针的应用场景

1 交换两个变量的值

void swap(int *pa,int *pb)

{

int t=*pa

*pa= *pb

*pb= t;

}

2 a 函数返回多个值,某些值只能通过指针返回,传入的参数实际上是需要保存带回的结果的变量

b函数返回运算的状态,结果通过指针返回,常用的套路是让函数返回特殊的不属于有效范围的值来表示出错,例如-1或0;但是当任何数值都是有效的可能结果时,就得分开返回

指针常见的错误

定义了指针变量还没指向任何变量就开始使用指针

指针计算

+,-,+=,-=,++,--,两个指针相减

*p++

取出p所指的那个数据,之后把p移到下一个位置,*优先级没有++高

常用于数组的连续空间操作,在一些cpu上,直接翻译成汇编指令

指针比较

< <= == > >= != 都可以对指针做,数组中的单元地址线性递增

0地址

0地址通常是一个不能随便动的地址,指针不该具有0值

可以用0值表示特殊的事情:返回的指针无效,指针没有被真正初始化,(先初始化为0)

NULL是预定定义的符号,表示0地址

指针的类型

无论指向什么类型,所有指针大小都一样,因为都是地址;

但是指向不同类型的指针不能直接互相赋值,避免用错指针

指针的类型转换

void表示不知道指向什么东西的指针,计算时与char相同,不相通

指针也可以转换类型例如intp =&i ; void *q=(void *)p;

用指针来做什么

需要传入较大的数据时用作参数,传入数组后对数组做操作,函数返回不止一个结果,需要用函数修改不止一个变量,动态申请的内存

malloc 用于申请动态内存的核心函数

include<stdlib.h>

void*malloc(size_t size);

向malloc申请空间的大小是以字节为单位的,返回的结果是void* ,需要类型转换为自己需要的类型

(int*)malloc(n *sizeof(int))

如果没有空间,空间申请失败返回0,或者NULL

free()

把申请的来的空间还给系统,如果不使用会导致内存下降

http://www.jsqmd.com/news/297305/

相关文章:

  • 2026年比较好的除皱衣物护理机/蒸汽衣物护理机用户好评厂家排行
  • C语言数组
  • 2026年质量好的侧装缓冲滑轨/骑马抽缓冲滑轨行业内口碑厂家排行榜
  • 3分钟搞定抽卡记录:原神抽卡记录导出工具让你的原石花得明明白白
  • Ubuntu18.04开机自启难?测试脚本帮你搞定
  • OWASP ASVS 自动化检查清单实践指南
  • 音乐自由新纪元:突破12种加密格式的全方位解密指南
  • 3步解锁视频下载新体验:VK Video Downloader工具全攻略
  • 3步掌握零代码AI模型优化:MediaPipe Studio效率提升指南
  • ModEngine2 故障处理:7个核心问题的预防与解决方案
  • 2026年评价高的工业废气处理/陕西废气处理工程厂家最新权威实力榜
  • [Linux]学习笔记系列 -- [fs]exec - 教程
  • 2026年评价高的耐低温PET片/吸塑PET片厂家最新推荐权威榜
  • C语言枚举
  • 解锁Windows定制新境界:Windhawk个性化工具深度探索
  • 免费玩转Gemma 3:270M模型Unsloth训练教程
  • 三步打造高效知识管理系统:Light Reading Cloud的知识工作者效率解决方案
  • 4个核心技巧:用TRL强化学习实现大模型对齐与PPO优化
  • YOLOv9官方镜像使用全解析,新手避坑必备手册
  • 3大核心功能让你成为AI背景移除大师:革命性图像处理实战指南
  • 解锁边缘AI:5个维度掌握微控制器机器学习部署
  • RePKG完全掌握指南:从入门到高级应用的探索之旅
  • 如何通过AI技术高效获取B站硬核会员资格
  • 手把手教学:如何用 ms-swift 微调 Qwen2.5-7B
  • 企业级架构解决方案:现代化开发框架的深度剖析与实践验证
  • 5个高效解决方案:零基础手机视频合并完整指南
  • Axure RP 11 Mac中文界面完整解决方案:从问题诊断到性能优化的实战指南
  • 中小企业多端商城解决方案:数字化转型的高效路径
  • 5步打造原神智能助手:告别重复刷本的自动化解决方案
  • 从0开始玩转GPT-OSS:一镜像一网页,轻松实现大模型推理