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

C语言----指针

指针的定义或初始化

基类型 * 指针变量名;
(1) (2) (3)
示例:
int * p
这里的基类型是指被指向的数据类型是什么类型,在64位下,指针类型所占据的空间都是八个字节(一个字节八位二进制数)
这里的*是指定义了指针类型变量的提示符,与之后*运算不同。
int a = 10;
int *p = &a; //意识是p的值是a的地址

int a = 10;
int *p;
*p = &a; //这是不可行的,*p是指p地址上的值
p=&a; //这是可行的,p本身就是需要一个地址为值

int *p; //定义指针却不初始化,指针值是随机的
int *p=NULL; //0号地址

利用指针,可以验证电脑是大端还是小端模式

int num = 0x12345678;
char* p = (char*)#
printf(0x%02x\n", *(p + i));

得到结果【0x78】说明低位存在低位,是小端模式

指针类型允许的计算

p+N //注意: 运算结果还是指针 表示的含义 p+N*sizeof(基类型) ---p指向了第N+1个基类型
p-N //与p+N相同
p++ //表示加了一个基类型的大小
p--

p-q //两个指针相减,运算结果表示 两个地址间 差了几个基类型
关系运算
> >= < <= == != //都是可以的

指针——一维整型数组

int a[10] = {1,2,3,4,5,6,7,8,9,10};
int *p = &a[0];
int *p = a; //说 p指向了数组a,这里a作为数组名退化为首元素地址,也就是&a[0]
初始化完成后对p也就是地址做*运算可以得到a[0]的值,p本身存储的是地址。拓展开来有下式
*(p+i) <=> a[i]

const

const基本用法:
const int a = 10; //限定a为只读 ---空间还是栈上,但是只能读,不能改

const----指针:

const char *s //这个限定仅仅是限定了s地址所指向的值不能通过 *s的方式进行修改,也可以直接修改s(地址),就是不能通过*s修改s所指的值
char const *s //与上式等价

char *const s //const 离s近,就是用来限定的s的,表示s在定义后,就不能再指向别的地址了

const char * const s; //s不能修改 *s也不能修改

能在形参写作const char *s的直接写,可以在编译阶段就帮助我们发现错误(修改了不能修改的值)

二级指针

二级指针,也就是指针的指针,在二维数组有用到。

一个易错点:C 语言是值传递,形参是实参的副本。如果直接把指针传进去,函数内修改的是副本,外部的指针不会变。
所以想要在函数内让指针置空,需要二级指针。(在数据结构中,想要用函数删掉整个链式结构时可以用)
一般情况下只需要在指针同域令其直接置空即可

void set_null_good(int **p) { *p = NULL; // 对二级指针解引用,修改外部指针变量的值 } int *ptr = malloc(4); free(ptr); set_null_good(&ptr); // 传入指针的地址 if (ptr == NULL) { printf("已成功置空\n"); }
http://www.jsqmd.com/news/1332859/

相关文章:

  • 2026做工厂的注意!南通金属回收别只看报价,这几个坑很多老板都踩过 - 品牌优企推荐
  • OpenClaw本地部署全攻略:从环境配置到成本优化的实战避坑指南
  • 突破传统限制:探索ZXPInstaller为Adobe插件安装带来的革新方案
  • 基于DeepSeek V4的企业级RAG系统实战:从零搭建私有化知识库问答
  • STM32CubeIDE从入门到精通:一站式开发环境配置与实战指南
  • 基于Claude Code构建团队AI技能库:从个人经验到智能资产的工程化实践
  • Hackintool黑苹果工具:5步解决显卡、音频、USB三大难题
  • 2026年无人机队规模扩大?专业资产系统让设备流转更清晰 - 2027品牌AI展
  • Nacos鉴权实战:从原理到配置,全面加固微服务安全
  • 别让 Agent 随手解析 PDF:RAG 入库前需要一层“解析预算门禁”
  • 房产赠与合同需要公证吗?看完这篇少走3个月弯路 - 慧办好
  • 气源不稳定车间,该选择哪种气液增压器?钰腾实测数据
  • 如何在10分钟内掌握HS2-HF Patch:终极游戏增强完整指南
  • 主流网络空间搜索引擎完整使用教程
  • Linux安装报错/dev/root does not exist排查指南:从内核参数到驱动加载
  • 贵阳2026年暑期三下乡实践活动发稿投稿指南,贵州省级主流网站代发渠道 - 精彩城市
  • 如何快速解决游戏Mod加载失败:Reloaded II完整故障排除指南
  • 告别 502 和限流:企业如何稳定调用 Claude/GPT 赋能日常 Coding?
  • 重庆专业的回收报废新能源车优质公司怎么选?2026本地车主避坑指南 - 品牌优推
  • Qwen3.8-Max开源部署全攻略:从私有化部署到生产级优化
  • OBS多路推流插件完整指南:3分钟实现一键多平台直播
  • 怎么选?2026年垂直B2B电商平台推荐与供应商能力解析 - 优质品牌商家
  • 从零开始:3步掌握B站评论数据采集的完整方法
  • 3步精通开源工具:彻底解决Windows苹果设备驱动安装难题
  • FigmaCN终极指南:3分钟实现Figma全界面中文本地化
  • 深度解析PIC16F1704-E/ML:扩展级温度8位高级模拟PIC微控制器的架构与外设
  • 2026惠州市整厂打包回收公司推荐,电子厂回收公司哪家好?2026避坑指南:4个坑+5条硬标准 - geo88
  • 漳州学生党护肤优质公司怎么挑更稳妥(2026) - 品牌优推
  • 从追踪到拦截:比例导引等经典导引律原理与工程实现详解
  • 魔兽世界怀旧服P4坦克配装指南:防御战士与防护骑士备战太阳之井高地