新闻详情

新闻详情

首页 / 资讯中心 / 详情

C语言——指针的介绍和运用,指针和数组的关系

发布时间:2026/9/30 5:06:19来源:尧图网络
C语言——指针的介绍和运用,指针和数组的关系
指针是C语言中的一个重要概念也是C语言的一个重要特色。正确而灵活地运用它可以有效地表示复杂的数据结构能动态分配内存方便地使用字符串有效而方便地使用数组在调用函数时能获得1个以上的结果能直接处理内存单元地址等这对设计系统软件是非常必要的。掌握指针的应用可以使程序简洁、紧凑、高效。每一个学习和使用C语言的人都应当深入地学习和掌握指针。可以说不掌握指针就是没有掌握C的精华。1指针本身很抽象2指针可以和前面学过的所有内容关联起来指针普通变量 指针数组 指针函数 指针指针什么是指针计算机的内存是按字节进行编址的——一个字节一个地址编号地址——通过地址信息可以找到想要的目标地址值本身也是一种数值关键在于能否像普通变量一样给地址值开一个空间所以引出了——指针的概念指针(pointer)——指针就是地址地址就是内存单元的编号想要存储或者处理指针的编号有一种数据类型叫指针类型指针类型——这是一种数据类型——可以用来处理指针这种数据以及相关运算指针数据和普通整型数据区别是一个是地址编号一个是实际大小地址编号即内存单元编号1000 数值大小1000语法定义一个指针类型变量一般形式为基类型 * 指针变量名1.基类型 表示的是指针地址所指向的空间的数据类型2.* 定义指针变量时只是用来说明是指针类型的3.指针变量名就是一个标识符和普通变量名命名规则一致egint a 10int * p//定义了一个指针变量p//定义了一个类型指向int型数据的指针变量//也意味着开了一个空间空间开多大取决于p对应的数据类型32位 系统 --- 对应地址大小 统一都是32位 --4个字节64位 系统 --- 对应地址大小 统一都是64位 --8个字节int * p a; //a是取地址运算这句话的意思是p放了a的地址也就是p指向a如何对a这块空间使用1.直接通过a使用即a 某个值2.简介引用——指针的方式int a 10int *p a1首先通过p本身可以得到a所在空间的地址2*运算数——指针运算符(解引用)——运算数必须是地址 *p运算过程//1拿出p中的地址编号到内存中寻找//2从定位处开始偏移出sizeof(基类型)大小的一块空间//3将偏移出这块空间当做一个基类型变量来看*p运算结果整体上相当于一个int类型变量即当成a使用指针的作用之一可以实现被调函数修改主调函数1要修改谁就传谁的地址2在被调函数中一定要有相应的*p运算例如int addOne(int *p) { *p *p 1 //这里的*p就相当于主函数的n } main() { int n 10; //主调函数中 有一个变量 想在被调函数中对这个变量进行修改 addOne(n); }注意理解int *a这里的 * 是声明标记不是解引用运算意思定义变量 a a 的类型是 int * 整型指针变量 a 里面存放的是一个int变量的内存地址。*a这里的 * 是解引用运算符单目运算作用拿到 a 里面存的地址访问这个地址对应的内存里面的值。指针与数组//通过指针 操作 数组数组名从值的的角度 --数组名代表数组首元素的地址 ---首元素地址也是整个数组起始地址int *p a; a[0]; // a[0]是int类型//a[0] 即取了一个存放int型数据空间的地址 //指针指向数组的运算p 1 //表示地址加了一个基类型大小p N //表示地址加了N个基类型大小p - 1 //表示地址减了一个基类型大小p - N //表示地址减了N个基类型大小两个指针相乘相加没有意义相减可以有点用比如得到两个数组间相差了多少个数(前提是同类型指针)举例int a[10];*p a[0];*q a[5];这时候p-q -5地址编号相差4*520但是相减结果是-5表示差了五个基类型关系运算 !p q //地址编号 编号大的 就大指针操作数组因为数组的特点只需要知道首元素地址即可指针运算pN指针 * 运算即可访问数组pi即第i个元素的地址*(pi)即第i个元素的值a[i]*(pi)a[i]*(ai) 因为a是首元素
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

图文多模态情感识别实战:大模型特征增强与融合方案 2026/9/30 5:54:18

图文多模态情感识别实战:大模型特征增强与融合方案

简介:这份文档面向人工智能、大模型方向的研究者与学习者,聚焦图文多模态情感识别这一交叉课题,系统梳理大模型增强与特征融合两条技术主线,帮助读者理解如何借助预训练模型与多模态融合策略提升情感识别性能。资源包内含1个docx文…

阅读更多 →
基于人脸关键点与向量检索的脸型发型搭配系统实战 2026/9/30 5:54:18

基于人脸关键点与向量检索的脸型发型搭配系统实战

简介:这份PDF文献围绕基于人脸识别技术的脸型发型搭配系统展开,面向计算机视觉、人工智能方向的学习者与研究人员,以及关注个性化形象管理应用的开发者。内容系统梳理了人脸识别技术的三类检测方法——基于肤色、基于形状与基于统计理论&…

阅读更多 →
开源AI中台部署实战:vLLM+Dify+网关与显存规划 2026/9/30 5:54:18

开源AI中台部署实战:vLLM+Dify+网关与显存规划

在离线内网里把一套能对话、能检索、能接业务系统的 AI 能力跑起来,这件事我从零到一做过几轮,踩的坑比想象中多得多。开源 AI 中台部署运行这个题目,听起来像是"装几个容器就完事",实际上它横跨了驱动、容器运行时、推…

阅读更多 →
基于豆包API搭建个人知识库:语义检索与向量数据库实战 2026/9/30 5:54:05

基于豆包API搭建个人知识库:语义检索与向量数据库实战

1. 这套知识库到底解决了什么问题先说说我做这套东西的背景。我日常的工作流里,信息源特别杂:飞书群里同事丢过来的文档、GitHub 上收藏的开源项目 README、自己随手记的碎片笔记、还有各种网页剪藏。以前我的做法是"收藏夹吃灰法"——看到有用…

阅读更多 →
SAP HANA 是什么?从列存原理到部署调优实战全解析 2026/9/30 5:54:05

SAP HANA 是什么?从列存原理到部署调优实战全解析

做 SAP 这行十几年,从最早 Oracle 配 ECC 的那套老组合,到后来一柜子一柜子的 HANA 一体机,再到现在随手在云端开一个 HANA Cloud 实例就能跑开发,我最大的感受是:大家嘴上说的"SAP HANA",往往根…

阅读更多 →
计算机组成原理第5章课后题解析:指令周期、流水线与微程序控制器 2026/9/30 5:54:05

计算机组成原理第5章课后题解析:指令周期、流水线与微程序控制器

期末周前一礼拜,班级群里最常刷屏的一句话就是:第5章课后题答案谁有。我手上那本《计算机组成原理(微课版)》的第5章前后做过三遍:第一遍对着答案抄,第二遍逼自己推,第三遍才发现真正值钱的不是…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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