新闻详情

新闻详情

首页 / 资讯中心 / 详情

指针初阶:从零到一,彻底搞懂 C 语言指针的核心奥秘

发布时间:2026/9/29 21:55:08来源:尧图网络
指针初阶:从零到一,彻底搞懂 C 语言指针的核心奥秘
C语言学习记录日期 9.21今日知识点 ——指针是什么指针是编程语言中的一个对象利用地址它的值直接指向存在电脑存储器中的另外一个地方的值。由于通过地址就能找到所需的变量单元可以说地址指向该变量单元。因此将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。练习代码总结指针就是变量用来存放地址的变量存放在指针中的值都被当成地址处理一个小的单元到底是多大1 个字节int main(){int a 10;//在内存中开辟一块空间 int * pa a;//这里我们对变量a取出他的地址可以使用操作符将a的地址存放在p变量中p就是一个指针变量 *pa 20;//对指针pa进行解引用操作通过pa中存放的地址找到变量a并将a的值修改为20 return 0;}今日知识点 ——指针和指针类型//指针的大小只取决于操作系统的位数寻址能力而与它指向的数据类型无关。int main(){int *pa; char *pc; float *pf; printf(%d\n,sizeof(pa));//8 printf(%d\n,sizeof(pc));//8 printf(%d\n,sizeof(pf));//8 return 0;}//指针的类型决定了对指针解引用的时候有多大的权限能操作几个字节比如char的指针解引用就只能访问一个字节而int的指针的解引用就能访问4个字节。练习代码今日知识点 ——野指针什么是野指针野指针就是“指向了不该指向的地方”的指针使用它等于在乱闯内存极易引发崩溃如何规避野指针1.指针初始化2.小心指针越界3.指针指向空间释放及时置NULL4.指针使用之前检查有效性练习代码intmain(){int*pNULL;//明确知道初始化的值int*ptra;//C语言本身不会检查数据的越界行为//错误示范//int* p NULL;//*p 10;//正确应为intpNULL;if(p!NULL)*p10;return0;}intmain(){intarr[10]{1,2,3,4,5,6,7,8,9,10};int*parr;// p 指向数组首元素int*pendarr9;// pend 指向最后一个元素下标 9while(ppend)// 只要 p 还没越过最后一个元素就继续{printf(%d\n,*p);p;// p 向后移动}return0;}它对应“如何规避野指针”中的第 2 条小心指针越界◦ 数组 arr 有 10 个元素合法下标是 0~9。◦ pend arr 9 指向最后一个合法元素下标 9。◦ 循环条件 p pend 保证 p 最多走到 pend不会越过数组末尾因此不会访问到数组之外的内存也就不会产生野指针。如果去掉边界检查就会变成野指针如果把循环条件改成 while (1) 或 while (p arr 100)p 就会一路递增越过数组末尾继续访问非法内存——此时 p 就成了野指针解引用 *p 会读取到未知数据甚至导致程序崩溃。今日知识点 ——指针运算指针指针的前提指针减指针的前提是两个指针指向同一块空间练习代码intmain(){intarr[10]{1,2,3,4,5,6,7,8,9,10};charc[5];//指针减指针的前提是两个指针指向同一块空间//printf(%d\n,arr[9] - ch[0]);//不能减因为不是指向同一块空间printf(%d\n,arr[9]-arr[0]);return0;}//计数器//int my_strlen(char* str)//{// int count 0;// while(*str ! \0)// {// count;// str;// }// return count;//}//指针减指针intmy_strlen(char*str){char*startstr;while(*str!\0){str;}returnstr-start;}intmain(){//strlen();//求字符串长度//递归intlenmy_strlen(abc);printf(%d\n,len);return0**知识点总结**1.**计数器法求字符串长度**用 count 变量累加遍历字符串直到 \0返回 count。2.**指针减指针求字符串长度**用 char*startstr 记录起始地址str 走到 \0 后str-start 即为长度前提是两个指针指向同一块空间。3.**字符串以 \0 结尾**while(*str!\0) 是遍历终止条件\0 是字符串结束标志。4.**指针自增运算**str 让指针向后移动一个字符1字节。5.**函数传参数组/字符串退化为指针**my_strlen(abc) 传入字符串首地址形参 char*str 接收。6.**指针运算的实际应用**用「指针减指针」替代计数器体现指针运算的灵活用法。7.**递归思路注释中提及**可用递归实现即 1my_strlen(str1) 的递归写法。;}
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

不用打开Photoshop也能找图:支持PSD缩略图预览的工具盘点 2026/9/29 21:55:08

不用打开Photoshop也能找图:支持PSD缩略图预览的工具盘点

在视觉设计、新媒体排版和电商美工的日常工作中,PSD格式通常是保存设计源文件的标准格式。然而,Adobe Photoshop本身的启动耗时较长,对系统内存的占用也相对较高。如果只是为了确认文件内容、查找特定分层效果或者挑选历史素材,频…

阅读更多 →
AI编程时代,IM集成也能交给AI了 2026/9/29 21:55:08

AI编程时代,IM集成也能交给AI了

过去两年,AI 编程助手已经走进了绝大多数开发者的日常工作流。从补全函数到生成完整模块,从写单元测试到重构遗留代码,AI 的产出效率令人惊叹。但当开发者把这类工具应用到即时通讯(IM)集成这一具体场景时,…

阅读更多 →
【中台·落地篇】企业级中台建设路线图:从规划到交付的完整指南 2026/9/29 21:55:08

【中台·落地篇】企业级中台建设路线图:从规划到交付的完整指南

前言 中台建设不是一蹴而就的技术项目,而是一场涉及组织、流程、技术的系统性变革。阿里巴巴的中台用了5年,美团用了3年,字节跳动仍在迭代。盲目追求"大而全"只会重蹈覆辙——据统计,超过70%的中台项目没有达到预期效果…

阅读更多 →
Steam 下载管家保姆级安装教程 2026/9/29 21:55:00

Steam 下载管家保姆级安装教程

目录 1、鼠标右击【Steam下载管家】压缩包(win11及以上系统需先点击“显示更多选项”)【解压到 Steam下载管家】。 2、打开解压后的文件夹,鼠标右击【setup360……】选择【以管理员身份运行】。 3、点击【快速安装】,勾选用户协…

阅读更多 →
天眼设备实战指南:从告警误报排查到策略下发与日志回溯 2026/9/29 21:54:59

天眼设备实战指南:从告警误报排查到策略下发与日志回溯

简介:这份《网络安全设备:天眼使用指南》面向网络安全初学者、即将入职的安全运维人员及备考从业者,帮助读者在正式接触设备前建立对天眼态势感知系统的整体认知。内容围绕天眼架构部署、流量传感器、分析平台与文件威胁鉴定器四大模块展开&a…

阅读更多 →
花生种子筛选识别实战:从CNN图像分类到目标检测的完整路径 2026/9/29 21:54:59

花生种子筛选识别实战:从CNN图像分类到目标检测的完整路径

简介:PDF文档《基于卷积神经网络的花生种子筛选识别算法》是一份农业智能检测方向的学术论文,适合从事深度学习、机器视觉与种子品质检测的研究人员、工程师及研究生阅读。算法针对传统筛选分类复杂、准确率低、速度慢的痛点,将花生种子分成完…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉