深入理解指针(1)--指针入门基本操作

深入理解指针(1) 以上就是今天要分享的深入理解指针1的内容了,希望对刚刚阅读本篇博客的你有所帮助。 阅读详情

内存

概念

内存(Memory)是计算机的重要部件,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算的数据从内存调到CPU中进行运算,当运算完成,CPU将结果传送出来。

指针

而GPU想要访问某个字节时,就必须知道这个字节的在内存中的位置,所以需要给内存中的空间进行编址(就如同宿舍中,每个房间有门牌号一样)。
在这里插入图片描述
在C语言中,我们就用指针来表示这一概念,用指针表示内存的地址。

取地址操作符(&)

当我们需要得到一个变量地址时,我们可以用取地址符号&来得到

int main()
{
	int a = 10;
	printf("%p\n", &a);
}

在这里插入图片描述
使用这个操作符我们就能清楚的得到数据在内存中的地址。

指针变量

当我们拿到一个地址时,我们需要存储起来,方便以后使用,那我们把他们存在哪里呢?答案是:指针变量中。

int main()
{
	int a = 10;
	int* pa = &a;
	printf("%p\n", pa);
}

在这里插入图片描述
指针变量也是一种变量,这种变量是用来存储指针变量的,这里的值就是地址。

指针类型

int a;//整形
int * a //整形指针
char b //字符
char * b //字符指针

这里pa左边的int*,*是说明pa是指针变量,而前面的int说明pa指向的是int类型的对象。一般来说,*号前面是什么类型,就是什么类型的指针变量。

解引用操作符

当我们拿到一个地址时,我想要得到相应地址的内容,就要使用解引用操作符*。

int main()
{
	int a = 10;
	int* pa = &a;
	printf("%d\n", *pa);
}

在这里插入图片描述
*pa的意思就是通过pa的地址,找到指向的空间,*pa相当于a变量,所以我们可以打印出他的内容。

指针变量大小

当我们使用32位机器时,我们假设它有32根地址总线,每跟地址总线的电信号可以转换成1或0,我们把这个2进制序列当作一个地址,那么一个地址就是32个bit位,需要4个字节才能存储。所以相应指针变量需要4个字节的空间。
同理,64位机器就需要8个字节。

int main()
{
	printf("%zd\n", sizeof(char*));
	printf("%zd\n", sizeof(int*));
	printf("%zd\n", sizeof(short*));
	printf("%zd\n", sizeof(double*));
}

在这里插入图片描述
我们可以看到,不管是什么类型的指针变量,它都是一个指针,都是占4或8个字节的空间。

今天,简单介绍指针的基础内容,以后再来逐步介绍指针更加详细的内容。

二极管钳位电路、限幅电路和检波电路Multisim电路仿真 本文系统介绍了二极管钳位、限幅和检波三种基础电路的工作原理及Multisim仿真验证。钳位电路通过电容-二极管配合实现波形整体平移,将波峰或波谷固定在指定电压;限幅电路利用二极管导通特性削除信号超出设定阈值的部分;检波电路则通过半波整流和电容滤波从调幅波中提取音频信号。三种电路均通过Multisim仿真验证了理论分析结果,展示了二极管在信号处理中的关键作用。这些基础电路广泛应用于信号调理、电平保护和通信解调等领域。 阅读详情

相关推荐

基于Apache SeaTunnel构建CDC数据同步管道

Apache SeaTunnel是一个数据集成开发平台,其发展经历了几个重要阶段:ETL时代(90年代):面向结构化数据库的数据同步,用于构建数据仓库。MPP和分布式技术流行:使用技术如Hive进行数据仓库的构建。此阶段主要使用mapreduce程序进行数据搬运和转换。数据湖技术流行:重视数据集成,强调先同步数据至数据湖仓储,再进行业务面向的转换和设计。CDC,即变更数据捕获,是一种捕获数据库变更事件(如插入、更新、删除)的技术。

weixin_54625990的博客 2172

C语言:深入理解指针(1)

大家好,今天来给大家分享一下我对指针的理解 学习内存之前,引用一下生活中的一个案例 假设你知道你的一个朋友住在一个小区,这个小区有10栋楼,每栋楼10个楼层,每个楼层又有10个房间,你想找到他就得挨个挨个房间去找,这样效率是非常低的,但如果根据这些楼层和楼层房间的情况,给每个房间编上号,比如说1号楼1楼第1个房间,编上1#101,以此类推,那么你的朋友得到了房间号并告诉你,你就能迅速地根据信息找到他所在的房间。 所以在生活中,一些小区、酒店通过设置了房间号,方便客人快速找

weixin_51142926的博客 5423

Python实战:动态爬取国家地表水水质实时监测数据(附最新代码解析)

本文详细介绍了使用Python动态爬取国家地表水水质实时监测数据的实战方法。针对动态网站数据加载特点,重点解析了如何利用Selenium模拟浏览器操作、结合BeautifulSoup解析数据,并提供了最新的代码实现与常见问题解决方案,帮助开发者高效获取环境监测数据。

app77的博客 280

深入理解C语言指针

一、指针的概念 要知道指针的概念,要先了解变量在内存中如何存储的。在存储时,内存被分为一块一块的。每一块都有一个特有的编号。而这个编号可以暂时理解为指针,就像酒店的门牌号一样。 1.1、变量和地址 先写一段简单的代码: void main(){ int x = 10, int y = 20; } 这段代码非常简单,就是两个变量的声明,分别赋值了 10、20。我们把内存当做一个酒店,而每个房间就...

ZackSock的博客 28万+

Android-S无线模块前瞻

WiFi - mainlane非强制 S 采用反射的方法直接加载wifiservice,直接hook在systemserver上,无编译依赖。gms可以动态替换wifi服务。 R 采用直接启动service的方式,wifiservice仍然map在systemserver上。 WiFi - 11ad接口支持 11ad被wifi联盟商业化为WIGIG,提供短距的60GHZ载波,理论速度为当前5G 11ac的6倍。市面上基本没有手机支持,需要独立的芯片支撑此功能。 传输距离为3m以内,外界d.

头铁的伦的博客 1044

Adams软件安装与配置全攻略:从入门到机器人仿真

机械系统动力学仿真软件Adams是工业机器人开发的重要工具,其安装过程涉及许可证配置、环境变量设置等关键技术环节。专业仿真软件安装通常需要处理系统兼容性、组件依赖和授权验证等工程问题,特别是在机器人控制仿真等场景中,还需集成MATLAB/Simulink等第三方工具。本文以Windows平台为例,详解Adams安装的核心步骤,包括系统环境检查、许可证服务器配置、工业机器人专项模块安装等实践要点,并针对NVIDIA Quadro显卡优化、27500端口通信等常见问题提供解决方案,帮助用户快速搭建可靠的仿真环境

weixin_28523493的博客 199

深入理解指针1

总结: 2.内存究竟是如何编址的呢? 二.指针变量和地址 1. 取地址操作符& 2.指针变量 3.如何创建指针变量 4.解引用操作符*(间接访问操作符) 5.指针变量大小 6.指针变量类型的意义 1.指针变量的类型决定了指针解引用时的权限 2.指针变量类型决定了指针的步长 7.指针加减整数 8.指针变量类型的使用 四.const修饰指针 1.const修饰变量 2.const修饰指针变量 五.指针运算 1.指针加减整数

m0_75170685的博客 1179

从零到一:移远EC200UCN_LA OpenCPU开发中的‘避坑’实战指南

本文详细介绍了移远EC200UCN_LA 4G通信模块的OpenCPU开发实战指南,涵盖开发环境搭建、项目构建、通信接口开发、调试技巧及固件升级等关键环节。通过避坑经验和实用技巧,帮助开发者高效完成二次开发,提升4G通信模块的应用开发效率。

weixin_29159711的博客 506

【深入理解指针1】

在指针类型中有一种特殊类型的指针是void*类型的指针,可以理解为没有具体类型的指针你,可以接收任意类型的地址。如果明确知道指针指向哪里就直接给指针赋值,如果不知道就给指针赋值NULL,NULL是语言中定义的一个标识符常量,值是0,0也是地址,这个地址是无法使用的,读写会报错。*pa的意思就是通过pa中存放的地址,找到指向的空间,*pa其实就是变量,所以*pa=0,这个操作符就是把a改成0。注意指针变量的⼤⼩和类型是⽆关的,只要指针类型的变量,在相同的平台下,⼤⼩都是相同的。

xwcsdn9796的博客 2214

别再为批次效应发愁了!手把手教你用Harmony整合10x单细胞数据(附完整R代码)

本文详细介绍了如何使用Harmony工具消除单细胞数据中的批次效应,提供完整的R代码实现跨样本数据整合。通过模糊聚类和渐进校正技术,Harmony能有效区分技术噪音与真实生物信号,适用于大型数据集处理。文章包含质控要点、参数设置建议及常见问题解决方案,助力研究者获得高质量整合结果。

weixin_27215403的博客 197

ESP32-C3入门教程 WiFi篇①——WiFi Scan 扫描附近AP无线热点 | 堵塞等待扫描结果,回调事件通知扫描结果

文章目录一、快速运行二、运行效果三、程序流畅四、关键函数4.1 扫描所有有效的AP4.2 获取上次扫描中找到的AP列表4.3 获取上次扫描中找到的AP数 一、快速运行 示例项目中,选择WiFi—>scan menuconfig配置ESP32C3-Specific—>Rec 0 芯片选择ESP32-C3(Built-in USB JTAG) 快速运行ESP-IDF Build, Flash and Monitor(左下角) 二、运行效果 三、程序流畅 esp_netif_init,初始

5417

深入理解C语言的指针(一)

文章目录深入理解指针地址字符指针指针数组数组指针数组指针的定义:**“&数组名”和“数组名”**数组指针的使用一维数组传参二维数组传参一级指针传参二级指针传参函数指针什么是函数指针怎样使用函数指针函数指针数组函数指针是什么函数指针的使用 深入理解指针 指针学习是C语言中十分重要的一个环节,利用指针,学会了指针的知识后,我们会对系统的内存有更为清晰的认识,也对更为底层的程序,这样就是C语言经久不衰的原因。 地址 了解指针之前我们要了解地址 内存被划分为以字节为单位的空间 每一个字节都有一个编号,这

cainiaochufa2021的博客 5722

pycharm一直选择不了conda正确路径弹框报错:latinit property envs_dirs has not been initialized...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2921

指针的深入理解(七)

哈喽,大家好!今天继续带大家学习没讲完的指针练习讲解。话不多说,直接进入正题。向着大厂冲锋!杀gigi!

大白的编程日记. 1665

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【深入理解指针】指针的进阶

目录📌一些常见指针的用法和意义📌指针数组📌数组指针📌函数指针📌函数指针数组常见的指针有以下几种指针的初阶用法就是认识并能熟练使用像char*,int*等一些用法,比如说实现一个交换两个整数的函数,你要知道实参和形参的区别,也就是为什么要传指针。这些就是一些初阶用法。而指针的意义是什么呢?其实指针类型的意义就是:决定了每一次访问内存的的大小我们经常在定义指针的时候是不是都是按照它的类型进行定义的,比如是int类型,就定义一个int*,char类型就定义一个char*,其实你可以想象一下,地址全都是占.....

记录学习点滴 2230

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【C语言篇】深入理解指针1

带你全面了解C语言指针内容,一起来看看叭❤️

半截诗的博客~ 1530

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【C语言】深入理解指针(1)什么是地址&指针

深入理解指针(1)什么是地址&指针,内存与地址,指针变量,指针的运算,

石墨博客 3157

《深入理解C指针》-第1章 认识指针-阅读所得

           第1章 认识指针 指针就是一个存放内存地址的变量。理解指针的关键在于理解C程序如何管理内存。归根结底,指针包含的就是内存地址。 理解指针的工作方式:通过理解组织和管理内存的方式。 本章简要介绍指针、指针操作符以及指针如何与内存相互作用。 1.1节研究如何声明指针、基本的指针操作符和null的概念。C支持好几种不同类型的null,所以仔细研究null...

sinat_37817094的博客 902

【C语言】深入理解数组和指针——初识指针

哈喽大家好,我是保护小周ღ,C语言,接下来给大家带来的是深入理解数组和指针的初识指针,这篇主要讲的是基础指针的相关知识,是博主的所见所闻,细节上的知识后面会这里面没有提,会放在后期的文章中与数组相结合讲,多多包含~

保护小周ღ的博客 2823

深入理解指针(1)——从内存到指针的完整指南

指针是C语言的核心特性,本质是内存地址的容器。文章系统讲解了指针的底层原理(内存编址机制)、指针变量的声明与使用(解引用操作)、指针类型的作用(决定访问权限和运算步长)、const修饰指针的用法、指针运算规则(加减整数和关系运算)、野指针的危害与规避方法,以及assert断言的使用。最后通过传值调用与传址调用的对比,展示了指针在函数参数传递中的关键作用。理解这些基础概念是掌握指针编程的关键,也为后续学习指针与数组的关系打下基础。

CrawlerRenewal的博客 1035

深入理解指针(1)

就是为了 不能被修改,如果p拿到n的地址就能修改n,这样就打破了const的限制,这是不合理的,所以应该让 p拿到n的地址也不能修改n,那接下来怎么做呢?我们可以把野指针想象成野狗,野狗放任不管是⾮常危险的,所以我们可以找⼀棵树把野狗拴起来,就相对安全了,给指针变量及时赋值为NULL,其实就类似把野狗栓前来,就是把野指针暂时管理起来。上述代码中n是不能被修改的,其实n本质是变量,只不过被const修饰后,在语法上加了限制,只要我们在代码中对n就⾏修改,就不符合语法规则,就报错,致使没法直接修改n。

ikuunnnn的博客 1132
上一篇: CSS介绍(5)--表格属性
下一篇: 深入理解指针(2)--指针+-整数和const修饰
tidal_wave
博客等级 码龄3年 518粉丝 41原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值