c入门第十篇——指针入门

一句话来说: 指针就是存储了内存地址值的变量。
在前面讨论传值和传址的时候,我们就已经开始使用了指针来传递地址。
在正式介绍指针之前,我们先来简单了解一下内存。内存可以简单的理解为一排连续的房子的街道,每个房子都有自己的地址,叫内存地址。在大多数计算机使用 8 位的块,或者字节(byte),作为最小的可寻址的内存单位,而不是访问内存中单独的位。下图简单展示了一下内存编址。
在这里插入图片描述
在C语言中,每个变量都存储在内存中的一个位置上,这个位置可以通过地址来访问。
如何获取变量的地址呢?用取址运算符 &来获取。
那获取的这个地址存储在哪里呢?指针。一个指针变量就是存储了内存地址值的变量。
有了地址之后,如何读取地址上的数据呢?可以用解引用运算符 * 来获取。
总结来说有几个重要的概念:
1. 内存地址:指示了变量存储在内存中的确切位置。
2. 指针变量:存储了内存地址值的变量。
3. 取址运算符(&):用取址运算符 & 来获取一个变量的内存地址。
4. 解引用运算符(*):用解引用运算符 * 来获取指向地址上存储的数据。
示例:

int var = 10; // 一个普通的整数变量
int *ptr = &var; // 一个指针变量,存储了var的地址

printf("var的值: %d\n", var); // 输出 var 的值
printf("var的地址: %p\n", &var); // 输出 var 的地址
printf("ptr存储的地址: %p\n", ptr); // 输出 ptr 存储的地址(即 var 的地址)
printf("ptr存储的地址: 0x%lx\n", ptr); // 输出 ptr 存储的地址(即 var 的地址)
printf("ptr解引用的值: %d\n", *ptr); // 通过 ptr 指针解引用访问 var 的值

在这个示例中,var 是一个普通的整数变量,ptr 是一个类型为 int *(指向int的指针)的指针变量,它存储了 var 变量的地址。通过 *ptr 我们可以访问 var 变量的值,尽管我们并没有直接使用 var 这个变量名。
总的来说指针的用途如下:
● 指针存储内存地址。
● 指针可以间接访问和操作内存中的数据。
● 指针可以使函数能够修改接收到的变量(传址,上一节讲述到)。
● 指针可以用于动态内存分配。
在C语言中,任何一个变量和函数类型,都可以有对应的指针。
这里只是简单介绍了一下指针的概念,指针与数组的关系比较密切,关于指针的使用,我们在后续介绍数组的时候,会详细介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/378953.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QGIS介绍

一.基本概念 QGIS的官方网站为:https://www.qgis.org Github地址:https://github.com/qgis/QGIS QGIS采用开源证书GNU GPLv2 (GNU General Public License version 2)发布,主要采用C语言开发,用户界面依赖Qt平台。 二…

JMeter测试工具(性能篇)

自动化脚本 设置全局变量 断言 接口弱压力测试 模拟半小时之内1000个用户访问服务器资源,要求平均响应时间在3000ms内,且错误率为0 模拟100个用户同时访问服务器资源,要求平均响应时间在3000毫秒内,且错误率为0 高并发 模拟2个…

Kubernetes基础(十五)-k8s网络通信

1 k8s网络类型 2 Pod网络 2.1 同一pod内不同容器通信 Pod是Kubernetes中最小的可部署单元,它是一个或多个紧密关联的容器的组合,这些容器共享同一个网络命名空间和存储卷,因此Pod中的所有容器都共享相同的网络命名空间和IP地址——PodIP&a…

Web前端框架-Vue(初识)

文章目录 web前端三大主流框架**1.Angular****2.React****3.Vue**什么是Vue.js 为什么要学习流行框架框架和库和插件的区别一.简介指令v-cloakv-textv-htmlv-pre**v-once**v-onv-on事件函数中传入参数事件修饰符双向数据绑定v-model 按键修饰符自定义按键修饰符别名v-bind(属性…

寒假漫游记之CSS

一&#xff0c;CSS 1.CSS语法规范 CSS规则由两个主要的部分构成&#xff1a;选择器及一条或多条声明。 &#xff08;选择器是用于指定CSS样式的HTML标签&#xff09; 注&#xff1a;CSS是写在<style></style>里 (style在<head></head>),具体可以书写…

java面试题:MySQL中的各种JOIN的区别

表关联是频率非常高的一种数据库操作&#xff0c;在MySQL中&#xff0c;这种JOIN操作有很多类型&#xff0c;包括内联接、左外连接、右外连接等等&#xff0c;而每种连接的含义都不一样&#xff0c;如果死记硬背&#xff0c;不仅很难记住&#xff0c;而且也容易搞混淆&#xff…

Web课程学习笔记--JavaScript的性能优化-加载和执行

JavaScript 的性能优化&#xff1a;加载和执行 概述 无论当前 JavaScript 代码是内嵌还是在外链文件中&#xff0c;页面的下载和渲染都必须停下来等待脚本执行完成。JavaScript 执行过程耗时越久&#xff0c;浏览器等待响应用户输入的时间就越长。浏览器在下载和执行脚本时出…

幻兽帕鲁服务器部署与参数修改教程(WindowsLinux)

教程合集 【阿里云部署攻略】&#xff1a;【官方指南】阿里云搭建幻兽帕鲁服务器指南汇总 【腾讯云部署教程】&#xff1a;【官方指南】腾讯云搭建幻兽帕鲁服务器指南汇总 选服务器 阿里云新用户专享优惠&#xff1a;帕鲁官方推荐配置4核16G 以及 8核32G&#xff0c;新用户…

Optimism Collective 为 Covalent Network(CQT)提供价值 20 万美元的生态系统资助

Covalent Network&#xff08;CQT&#xff09; 是 Web3 生态系统中关键的“数据可用性”层&#xff0c;在与 Optimism Collective 多年的合作中取得了骄人的成果。Covalent Network&#xff08;CQT&#xff09;对于 Optimism 跨链数据的增长产生了直接的影响&#xff0c;而这一…

OJ刷题:求俩个数组的交集(没学哈希表?快排双指针轻松搞定!)

目录 ​编辑 1.题目描述 2.C语言中的内置排序函数&#xff08;qsort&#xff09; 3.解题思路 3.1 升序 3.2双指针的移动 3.3 保证加入元素的唯一性 4.leetcode上的完整代码 完结散花 悟已往之不谏&#xff0c;知来者犹可追 …

3.2 Verilog 时延

关键词&#xff1a;时延&#xff0c; 惯性时延 连续赋值延时语句中的延时&#xff0c;用于控制任意操作数发生变化到语句左端赋予新值之间的时间延时。 时延一般是不可综合的。 寄存器的时延也是可以控制的&#xff0c;这部分在时序控制里加以说明。 连续赋值时延一般可分为…

1898_野火FreeRTOS教程阅读笔记_链表操作

1898_野火FreeRTOS教程阅读笔记_链表操作 全部学习汇总&#xff1a; g_FreeRTOS: FreeRTOS学习笔记 (gitee.com) 新的节点的插入&#xff0c;影响到的是链表中最后一个元素的后继以及当前被插入元素的前驱、后继以及归属属性。具体的操作效果为&#xff1a;新的节点更新自己的前…

深度学习中常用激活函数介绍

深度学习中常用激活函数介绍 在深度学习中&#xff0c;激活函数的作用主要是引入非线性特性&#xff0c;提高模型的表达能力。具体如下&#xff1a; 解决线性不可分问题&#xff1a;激活函数可以将输入特征的复杂度提升&#xff0c;使得神经网络能够处理非线性问题&#xff0c…

分布式系统架构介绍

1、为什么需要分布式架构&#xff1f; 增大系统容量&#xff1a;单台系统的性能瓶颈&#xff0c;多台机器才能应对大规模的应用场景&#xff0c;所以就需要我们的应用支撑平台具备分布式架构。 加强系统的可用&#xff1a;为了满足业务的SLA要求&#xff0c;需要通过分布式架构…

第62讲商品搜索动态实现以及性能优化

商品搜索后端动态获取数据 后端动态获取数据&#xff1a; /*** 商品搜索* param q* return*/GetMapping("/search")public R search(String q){List<Product> productList productService.list(new QueryWrapper<Product>().like("name", q)…

Java学习笔记2024/2/8

面向对象 //面向对象介绍 //面向: 拿、找 //对象: 能干活的东西 //面向对象编程: 拿东西过来做对应的事情 //01-如何设计对象并使用 //1.类和对象 //2.类的几个不错注意事项 1. 类和对象 1.1 类和对象的理解 客观存在的事物皆为对象 &#xff0c;所以我们也常常说万物皆对…

机器学习 | 深入集成学习的精髓及实战技巧挑战

目录 xgboost算法简介 泰坦尼克号乘客生存预测(实操) lightGBM算法简介 《绝地求生》玩家排名预测(实操) xgboost算法简介 XGBoost全名叫极端梯度提升树&#xff0c;XGBoost是集成学习方法的王牌&#xff0c;在Kaggle数据挖掘比赛中&#xff0c;大部分获胜者用了XGBoost。…

Java后端技术助力,党员学习平台更稳定

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

大模型2024规模化场景涌现,加速云计算走出第二增长曲线

导读&#xff1a;2024&#xff0c;大模型第一批规模化应用场景已出现。 如果说“百模大战”是2023年国内AI产业的关键词&#xff0c;那么2024年我们将正式迈进“应用为王”的新阶段。 不少业内观点认为&#xff0c;2024年“百模大战”将逐渐收敛甚至洗牌&#xff0c;而大模型在…

video / image上传操作-校验、截取首帧和正方形预览图等

常见video / image上传操作-校验、截取首帧和正方形预览图等。 上回搞了一个视频和图片上传和校验的需求&#xff0c;感觉学到很多&#xff0c;一些常见的函数记录如下&#xff1a; 1. 图片校验尺寸 const { maxCount 30, maxWidth, maxHeight, minHeight 200, minWidth …
最新文章