指针是什么?(超详讲解)第一课——指针变量的初步了解

【C语言】——指针(初步认识指针) 指针——初阶 阅读详情

 大家好啊!                                                              

很多人不懂什么是指针 ,

所以我做了一个简单易懂的指针教程。

文中符号的意思

//                                             =需要注意的地方。

//                                         =重点。

//                                     =非常非常重要的地方。

1234567                                 =特别特别重要的地方

什么是指针?

在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向
(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的内存单元,可以
说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址
的内存单元。

 其实计算机在设计的时候很多东西都是参考的生活中的东西

我国的国土面积:960万平方公里,这么大的国土面积是怎么合理使用的呢?聪明的国家领导人就想到,将这一大块区域进行划分,先划分为各个省,每个省再划分为各个市区,市区又划分为县城,县划分为镇,镇又划分为村,每个村的每户人家都有门牌号,可以很方便的找到,这样就对这样一大块区域进行了很好的管理。

那么其实电脑的设计也是这样的,在学C语言的这个阶段,我们常说的计算机的内存划分为3部分,栈区,堆区和静态区。

 计算机在最终也是将内存划分为了很小的空间--内存单元。

我们平时要在学校找一个同学,也是先确定他的宿舍编号然后才去找的,不可能盲目的去找,而这里宿舍编号就是地址。

那在计算机内存中,我们想要找到某个内存单元,也是要知道它的编号呀,所以这里就对每个内存单元都进行了编号处理,将编号就称为内存单元的地址。

eg.我国的国土面积:960万平方公里,这么大的国土面积是怎么合理使用的呢?聪明的国家领导人就想到,将这一大块区域进行划分,先划分为各个省,每个省再划分为各个市区,市区又划分为县城,县划分为镇,镇又划分为村,每个村的每户人家都有门牌号,可以很方便的找到,这样就对这样一大块区域进行了很好的管理。

那么其实电脑的设计也是这样的,在学C语言的这个阶段,我们常说的计算机的内存划分为3部分,栈区,堆区和静态区。

————————————————

注:

以上参考了优快云博主「Go-ly」的文章
原文链接:https://blog.youkuaiyun.com/weixin_46531416/article/details/120368009                                  

————————————————


首先,让我们看一段程序:

#include<stdio.h>
main()
{
int *a,b=3;
a=&b;
}

此程序先是定义了一个名为 a 的指针变量和一个名为 b 的int变量。

b=3。

//定义指针变量是要加*号。

接着将b的地址给了a,也就是a指向了b。

//给指针变量赋地址时,要加地址符(&)。

这时,如果输出*a,那么输出结果是3,因为b的值是是3,而a指向了b。

//在引用指针指向空间的值时,要在指针变量前面打*。

#include<stdio.h>
main()
{
int *a,b=3;
a=&b;
*a++;
}

这时,我们把a指向的值++,也就是b++,所以b是4(3(b的值)+1(*a++=b++)=4)。

这就是指针变量的基本用法。

让我们再看一段程序:

#include<stdio.h>
main()
{
int *b;
b=1;
}

这个程序就是错的,因为指针变量只能存其他变量的地址,不能存数值。

让我们最后看一段程序:

#include<stdio.h>
main()
{
int **k,*a,b;
a=&b;
k=&a;
}

程序中,出现了带两个*的变量,它其实也是指针变量,只不过它是用于指向指针变量的指针变量。同理,三颗*的指针变量,是用来指向 指向指针变量的 指针变量。

VSCODE编辑+EIDE插件调试+STM8_Debug插件调试+IAR_STM8工具链编译开发项目 1. 安装 在VS CODE安装EIDE、STM8-Debug插件 2. 使用 EIDE 创建一个 8/16 Bit MCU 项目 新建虚拟文件夹,把工程外部的文件添加进虚拟文件夹,实现工程和源文件之间的关系,而不用实际把源文件复制到工程目录下。 EIDE工程和源文件实现分开放置,EIDE(EIDE工程)、EWSTM8(IAR STM8工程)、Project(ST Visual Develop工程) 选择工具链 烧录工具选择 头文件包含目录 添加宏定义 3. 编译 4. 使用STM8 阅读详情

相关推荐

bcftools实战指南:从VCF文件处理到变异分析全流程解析

在基因组数据分析中,VCF(Variant Call Format)文件是存储基因序列变异信息的标准格式,广泛应用于群体遗传学和生物信息学研究。其核心原理是通过结构化文本记录SNP、INDEL等变异位点的基因型、质量值和注释信息。掌握高效处理VCF文件的技术,对于提升变异检测、数据清洗和下游分析的工作流效率具有重要价值。在生物信息学工具生态中,bcftools作为处理VCF/BCF文件的瑞士军刀,通过模块化设计实现了数据查询、过滤、统计和格式转换等核心功能。其流式处理架构支持管道化操作,能有效应对海量基因组

weixin_29081703的博客 323

【C语言】超详讲解☀️指针是个什么针?(一次性搞定指针问题)

目录 前言 什么是指针? 引例 计算机是怎么对内存单元编号的呢? 内存空间的地址如何得到 想存地址怎么办? ​ 本质目的不是为了存地址 指针和指针类型 前言 指针这一部分可能很多人在学习的时候都觉得很难,但在这里我想说的是:不要自己吓自己,想一想,你当初刚上大学的时候可能觉得高数非常难,最后学完整本书的时候回过头再看还觉得很难吗? 肯定已经觉得没有刚开始学那么难了,那么其实指针也是这样的,只要把里面的东西都搞清楚,你就不觉得难了。 一、 什么是...

weixin_46531416的博客 5202

避坑指南:雅特力AT32F403A在Keil5中的V2库配置常见问题解析

本文详细解析了国产MCU雅特力AT32F403A在Keil5中配置V2库的常见问题,包括工程创建、库文件配置、编译错误和外设设置等关键环节。针对项目文件夹结构混乱、芯片型号选择错误、头文件路径设置不当等典型问题提供实用解决方案,帮助开发者高效避坑,提升开发效率。

weixin_30335575的博客 377

指针初步讲解

比如: char* 的指针解引用就只能访问一个字节,而 int* 的指针的解引用就能访问四个字节。

2302_79376097的博客 1227

风力摆控制系统 PCB 设计 3 要点:STM32+MPU6050+空心杯电机驱动一体化

本文详细解析了风力摆控制系统PCB设计的3大核心要点,重点介绍STM32主控、MPU6050姿态传感器与空心杯电机驱动的一体化方案。通过系统架构设计、PCB布局布线技巧以及噪声抑制方案,帮助参赛者在电子设计竞赛中构建高精度、高稳定性的风力摆控制系统,提升竞赛作品性能。

weixin_30363285的博客 361

使用C# HslCommunication库实现三菱PLC通信(含完整代码示例)

在工业自动化开发中,上位机与PLC的通信是关键环节。HslCommunication库是一个开源的.NET工业通信库,支持三菱、西门子、欧姆龙等多个品牌PLC的通信协议。本文将演示如何通过库实现C#程序与三菱PLC的通信,并提供完整的代码示例。

StevenChen的博客 2291

指针的初步了解

str : 指向一个字符数组的指针,该数组将接受格式化的字符串format :格式控制字符串4成功时返回写入的字符串,不包括终止空字符\0出现错误,返回负数int main()int num=15;//使用sprintf将不同类型的值格式化为字符串int result = sprintf(butter,"Number:%d,Float: %.2f, String: %s",num,fnum,str)//str要用指针// 输出实际写入的字符数return 0;运行示例。

2402_86570713的博客 1522

金融数字化——详解2025年金融智能体深度应用报告【附全文阅读】

《2025年金融智能体深度应用报告》显示,金融智能体已实现80%部署率,推动行业效率提升30%-50%。报告指出智能体通过"感知-推理-规划-执行-进化"机制突破大模型局限,在风控、客服、投研等100+场景实现自动化。典型案例显示,工商银行信贷审批效率提升60%,蚂蚁数科智能客服解决80%问题。尽管面临系统协同、标准缺失等挑战,未来趋势将向多模态交互、自主进化和ESG投资等方向拓展。

cdfunlove的博客 205

指针-初步了解

在介绍指针之前,得先了解一下内存和地址。

2403_88753096的博客 684

【知识分享】高速印刷电路板(PCB)寄生参数计算指南

对于高速PCB设计而言,寄生参数一直是令人讨厌的问题,它们会悄悄潜入PCB并在电路中造成严重的破坏,具体来说,它们是渗透到高速电路中的隐藏杂散电容器和电感器,包括由封装引线和长走线形成的电感器、PCB焊盘对金属平面形成的电容器、走线之间形成的电容器等等。

一只豌豆象的博客 1782

Open3D点云算法与点云深度学习案例汇总(长期更新)

Open3D-python算法专栏文章汇总,长期更新算法原理与实战案例。

纵马踏花向自由 7470

超超详细的指针讲解

本篇将先初步介绍指针的各种有关知识,然后再讲解指针与数组、指针与函数等首先在正式讲解指针前先将三个注意点: 指针变量里放的是地址 指针变量也是变量,拥有自己的地址 *p 是 p 指向的空间 内存 指针基本有关知识 指针有关操作符: 指针变量的定义: 指针变量的大小: 指针变量类型的意义: 指针运算: 野指针: 二级指针: 特殊点的指针类型 数组指针: 函数指针 空指针

NorthTruths的博客 1123

手把手教你学PCIE--固件与BIOS配置 - BIOS设置对PCIe性能的影响

本文详细分析了BIOS设置对PCIe性能的影响,并提供了优化建议。通过合理调整链路参数、功耗管理策略和高级功能配置,可以显著提升系统的性能和稳定性。本文将进一步分析BIOS设置如何影响PCIe设备的性能,并提供优化建议。BIOS(或UEFI)是系统启动时的第一个控制层,其设置直接决定了PCIe设备的工作状态和性能表现。BIOS中的功耗管理选项(如C-States、P-States)会影响PCIe链路的低功耗模式(L0s/L1)。MSI/MSI-X中断具有更高的性能和更好的可扩展性,应作为首选方案。

MHD0815的博客 997

指针超详讲解(C语言)

前言:想必大多数学者学到指针时,都会感到一阵头疼吧。这篇文章将手把手带你学习指针,并深入剖析其内在逻辑,助你拨开迷雾,彻底掌握这一核心概念。1.理解:内存 地址(指针) 变量。

start_time的博客 627

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

变量的指针和指向变量的指针变量

指针和指针变量的定义: 一个变量的地址称为该变量的“指针” 例如,地址1000是变量i的指针。如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量” 定义一个指针变量 定义指针变量的一般形式为 基类型 *指针变量名; 说明 可以用赋值语句使一个指针变量得到另一个变量的地址,从而使它指向一个该变量 例子 float *pointer_3; char *pointer_4; po...

ghf183184的博客 7719

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【C语言指针超详解(一)】--指针变量和地址,指针变量类型的意义,指针运算

-从前面的内容我们可以了解到,32位机器假设有32根地址总线,每根地址总线出来的电信号转换成数字信号后是1或者0,那我们把32根地址线产生的2进制序列当做一个地址,那么一个地址就是32个bit位,需要4个字节才能存储。如果指针变量是用来存放地址的,那么指针变量的大小就得是4个字节的空间才可以,同理,如果是64位机器,指针变量的大小就是8个字节。--我们生活中的许多事情都离不开编号,比如我说我们刚开学想找到自己的宿舍,如果不知道宿舍的门牌号的话,就很麻烦了,而有了门牌号,我们就可以快速找到宿舍的地址。

会当凌绝顶,一览众山小 1646

【开卷数据结构 】指针的初步认识

说到指针,想必大家都不陌生,指针的最大特点就是难以理解,它是编程中很基础也是很重要的概念,指针可以有效的实现像树,链表这类高级的数据结构。在了解指针是什么之前,我们需要先了解什么是计算机的内存,什么是地址。计算机内存大部分时候指的是随机存储器也就是RAM,用于存放当前正在执行的变量或程序对象。变量的值存储在计算机的内存中,每个变量都占据一个特定的位置。每个内存位置都由地址唯一确定并引用,就像一条街道上的房子由它们的门牌号码标识一样。通过地址才可以找到内存中的变量。

Ceylan__的博客 3019

初步了解指针------指针的基本概念

初步了解指针 1.指针是什么 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。 假设内存块为一栋大楼,每个内存单元为一间房子,每个指针就好比每间房子的门牌号,我们通过门牌号找到相应的房子,同理,我们可以通过指针找到相应的内存单元。 #include <stdio.h>

sjp11的博客 5480

指针和指针变量

指针是C语言中一种特殊的变量,它存储的是另一个变量的内存地址(可用'&'取地址符来获取,详见下)。指针变量的主要用途是提供一种间接访问内存的方式。通过指针,程序可以动态地访问和修改存储在内存中的值。指针变量是用于存储地址的变量。它定义了一种数据类型,该数据类型可以指向另一种数据类型的内存地址。例如,int *p;定义了一个指向整型数据的指针变量p。

qq_74871667的博客 2149

变量指针与指针变量,数组指针与指针数组

本文介绍了指针变量作为函数参数的使用方法,重点讲解了通过指针间接修改实参数据的两种方式:交换指针指向和交换指针指向的数据。同时详细阐述了指针变量与数组元素的关系,指出数组名即代表数组首地址,可以用指针变量指向数组元素。文章还系统总结了指针运算的6种常见操作,包括自增、自减、加减n个元素、指针相减和比较等,并强调了指针运算必须在同一数组内进行。最后通过多个案例演示了如何用下标法和指针法遍历数组,展示了指针与数组的灵活结合应用。

Dd000110的博客 1882

c语言指针赋值指针变量赋值吗,C语言_指针变量的赋值与运算,很详细

指针变量的赋值指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值。未经赋值的指针变量不能使用, 否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址, 决不能赋予任何其它数据,否则将引起错误。在C语言中, 变量的地址是由编译系统分配的,对用户完全透明,用户不知道变量的具体地址。 C语言中提供了地址运算符&来表示变量的地址。其一般形式为: & 变量名; 如&a...

weixin_42471237的博客 1万+

初步了解指针

内存会划分为一个个内存单元(一个内存单元大小为1byte),每个内存单元都有一个编号。

xiamen1234567的博客 534

C语言基础:指针(指针变量和变量指针)

内存地址:系统为了内存管理方便,将内存划分为一个个的内存单元(通常是1个字节),并为没一个内存单元进行编号。内存单元的编号称之为该内存单元的地址。一般情况下,我们每一个变量都是由多个内存单元构成的,所有每个变量的内存地址,其实就是这个变量对应的第一个内存单元的地址,也叫基地址/首地址。变量指针:变量地址称之为该变量的指针(本质是地址)。变量地址往往是指变量在内存中第一个内存单元的编号(首地址)int a;&a ---变量a的地址,也称为变量a的指针​int arr[2];

weixin_51619876的博客 3116

C语言指针操作(一)地址,指针,指针变量是什么

地址,指针,指针变量是什么?他们的区别?符号(*)在不同位置的解释?指针是C语言中的一个重要概念,也是C语言的一个重要特色;使用指针,可以使程序简洁、紧凑、高效。不掌握指针,就没有掌握C语言的精华。

伯努利 5528

c语言中的地址与指针的概念,及变量的指针和指向变量的指针变量

/ 输出 p 存储的地址(即 x 的地址)printf("Value pointed to by p: %d\n", *p);// 输出 x 的值,即 10。// 通过指针 p 修改 x 的值,将 x 的值递增 1。// 获取 p 指向的值,即 x 的。

lexc_的博客 2912

【C语言指针超详解(四)】--字符指针变量,数组指针变量,二维数组传参的本质,函数指针变量,函数指针数组,转移表

-之前我们学习了指针数组,指针数组是一种数组,数组中存放的是地址(指针)。那么这里的数组指针肯定就是一个指针变量了。int * pint;存放的是整形变量的地址,能够指向整形数据的指针。float * pf;存放浮点型变量的地址,能够指向浮点型数据的指针。​​​那么数组指针变量应该就是:存放的是数组的地址,能够指向数组的指针变量。下面两串代码分别是什么其中的p1和p2又代表什么?1int* p1[10//这是一个指针数组//这里的p1是数组名2int(*p2)[10。

会当凌绝顶,一览众山小 1689
上一篇: 推荐文章23个
下一篇: 2021-09-12
lvshu · 绿树
博客等级 码龄7年 44粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lvshu · 绿树

非常感谢您的搭讪

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值