(C)指针的理解

C语言指针个人理解 指针通俗来讲就是地址,指针就是地址,地址就是指针。我们定义了一个变量,系统对变量进行编译的时候就会给这个变量分配内存单元,内存若是一个公寓,那么内存单元就是公寓的一间间屋子,而指针就是公寓的“ 门牌号 ”。指针变量: 含义就是存放变量地址的变量,本质仍然是变量数据类型 *指针变量名 //eg int *a;比普通的变量定义 多一个*,这里的*就是表示该变量为指针变量注:若数据类型为void类型则表示该指针变量为空类型TC系统VC系统2字节4字节注:指针变量所占字节数和数据类型无关。 阅读详情

·指针数组
指针数组本质上是数组,是一个存放指针的数组。
Eg:

   int *arr1[10]; //① 
   char *arr2[10];//②
   char **arr3[5];//③
   //① ② ③ 均为指针数组,  
   //①是数组(int*类型)中元素是 (int*类型) ;
   //②是数组(char*类型)中元素是(char*类型);
   //③是数组中存放 二级指针   

·数组指针
数组指针本质上是指针,是一个指向数组的指针。 指针变量存放数组地址
Eg:

      int *pint;//指向整型数据的指针:
      float *pf;//指向浮点型数据的指针;
      int *p[10];//指针数组     
                 //数组中存放类型为 int *  类型的指针;
      int (*p)[10];//指针数组  
                  //指向整形数组的指针;
     //注:
      int *p[10];       
      int (*p)[10];
      //p 先与什么结合,即可表示 p 本质是什么  
      //" [ ] "  的优先级于  " * " 的优先级

·函数指针
函数指针本质上是指针,是一个指向函数的指针,即指针变量保存的是函数的地址
Eg:

         void test(char* str);
         void (*p)(char*); //p是一个指针,并且指向一个函数,这个函数参数是char*,返回类型是void类型 

   //哪一个可以存放函数test 的地址?
         void  (*p1)();
         void  *p2();
         //首先,能给储存地址,就要求p1或p2是指针    
         //p1可以存放。p1先和*结合,即p1是指针,指针指向一个函数,指向的函数没有参数,返回值为空

         (*(void(*)())0)();   
         void (*signal(int,void(*)(int)))(int);    
         //简化为:void (*)(int) signal(int,void(*)(int)); 

·函数指针数组
数组是一个存放相同类型数据的存储空间,要把 函数的地址 存到一个数组中,那这个数组就叫函数指针数组。

如何定义:

                 int (*p1[10])();//√       
                 //p1先和“  [ ]  ”结合,说明p1是数组,数组内容是 "int(*)()"类型的函数指针
                 int *p2[10]();// ×
                 int (*)()p3[10];// ×    
                 //定义常函数指针数组

用途:转移表
例子:计算器


·指向函数指针数组的指针
指向函数指针数组的指针,指针指向一个数组,数组的元素都是函数指针
Eg:

      void (*(*a)[10])();                  
      //函数指针数组的指针
华为硬件逻辑岗笔试题(一) 积少成多,集腋成裘,坚持!!! 目录 1. 进制转换 2. 状态机和编码方式 3. 存储器的分类 4. Verilog语法中的操作符 5. 对组合逻辑的认识 6. 对时序逻辑的认识 7. 竞争冒险的认识 8. 基本时序逻辑电路 9. 建立时间和保持时间 10. 同步时序电路 11. 组合逻辑和时序逻辑判断 13. 基本总线的理解 14.加法器 15.FPGA开发工具 1. 进制转换 1、十进制46.25对应的二进制表达式为( )。 A 101110.11... 阅读详情

相关推荐

RealSense D455启动教程

RealSense D455启动教程 修改rs_camera.launch

每天进步一点点 2419

理解C语言指针

C语言指针理解 本人在初学的时候认为c语言中指针很好理解,但身边好多同学一直在说老师讲的指针太抽象了,看不到,摸不着,非常难理解,甚至学了4年计算机,毕业了,不少同学还说不清楚指针是什么,遇到指针的问题必定出错,这里简单介绍一下。 引言 c语言中有很多抽象的东西,而指针就是其中一个,学好 c 语言就要学会计算机的思维:透过表面看本质。 比如下面一行代码中 两个 ! 运算符 int x = 0; i...

qq_35425070的博客 5972

单片机课程设计——交通灯

单片机课程设计——交通灯一、课程设计主要内容1.1 题目1.2摘要1.3关键词二、设计要求三、设计方案四、参考电路设计4.1.1数码管的设计4.1.2对应程序4.2.1独立按键的设计4.2.2对应程序4.2.3 使用逻辑4.3.1LED模块的设置4.3.2 LED实物图4.3.3 LED显示程序五、调试要点5.1 单片机最小系统5.2 数码管模块5.3 LED模块5.4 独立按键六、总结七、成品图完整程序 一、课程设计主要内容 1.1 题目 交通灯设计 1.2摘要 近年来,随着我国国民经济的快速发展,我国机

PKPROTEUS的博客 3万+

这样子来理解C语言中指针的指针

友情提示:阅读本文前,请先参考我的之前的文章《从四个属性的角度来理解C语言的指针也许会更好理解》,若已阅读,请继续往下看。 我从4个属性的角度来总结了C语言中的指针概念。对于C语言的一个指针,比如int *p,4个属性分别如下: C语言指针p=(指针自己的值,与星号结合名,有用数据的值,有用数据的类型); 这4个属性用来理解C语言中单个指针可以,那么本篇再用这4个属性来解释C...

dichen3940的博客 599

华为ENSP完整安装教程

华为ENSP完整安装教程

Hnm456756的博客 7345

PCB布线避坑指南:晶振布局的5个致命错误(附正确示例图)

本文深入解析PCB布线中晶振布局的5个致命错误,包括底层布线、电容布局、地平面处理等关键问题,并提供实战解决方案。通过真实案例和量化数据,帮助硬件开发者避免常见陷阱,提升电路稳定性和性能。特别针对晶振这一高敏感元件,给出布线参数黄金法则和三维避让原则。

weixin_29215391的博客 428

C指针之指针带来的一些符号的理解

指针带来的一些符号的理解 我们写的代码是给编译器看的,代码要想达到你想象的结果,就必要编译器对你的代码的理解和你自己对代码的理解一样。编译器理解代码就是理解的符号,所以我们要正确理解C语言中的符号,才能像编译器一样思考程序、理解代码。 星号* (1)C语言中*可以表示乘号,也可以表示指针符号。这两个用法是毫无关联的,只是恰好用了同一个符号而已。 (2)星号在用于指针相关功能的时候有2种用法: 第一种是指针定义时,*结合前面的类型用于表明要定义的指针的类型; 第二种功能是指针解引用,解引用时.

baidu_41388533的博客 1431

SerDes系列之 SSC扩频时钟技术

扩频时钟,又称展频(SSC-Spread Spectrum Clocking),当前PCIE、DDR、USB等几乎所有的高速接口都支持SSC的功能。电子工程师在日常的电气测试中经常与之接触,在电磁传导和辐射发射验证过程中,经常需要使用到芯片的SSC功能,它的物理表现形式,就是信号的比特率会在一个很小的范围内浮动,多见于周期性变化的时钟信号。

一只豌豆象的博客 3443

理解c语言的指针

指针对于初学者往往是很难以琢磨的东西,因为它并不如变量那么抽象,而是更贴近底层的真实结构。指针操作往往会出现各种各样的岔子,我觉得都是由于对指针理解不深,使用不熟练造成的。这篇文章是我一年半来学习c语言关于指针的一点收获,有不足之处欢迎指正

u012965256的专栏 1350

汇川Easy系列PLC系统PID指令编程应用(增量型)

增量式PIDS7-1200/1500增量式PID(输出归一化、支持PWM输出)_西门子1200pid算法公式-优快云博客文章浏览阅读1k次。本文介绍了S7-1200/1500 PLC中增量式PID算法的应用,包括输出归一化和PWM输出。通过详细解析,阐述了PID输出如何限制在0.0-1.0之间,并且如何将PID输出与PWM占空比关联,适用于温度等控制场景。

RXXW_Dor的博客 1427

GPS系统跟踪捕获算法的Verilog实现在FPGA

本文将介绍GPS系统中的跟踪捕获算法,并提供该算法的Verilog实现在FPGA上运行的源代码。常用的方法是将接收到的信号与一个本地振荡器产生的参考信号进行混频,然后使用带通滤波器提取出希望得到的频率分量。码跟踪的目的是通过检测接收到的信号中的码片序列来实现对导航数据的解调。以上是一个简化的GPS系统跟踪捕获算法的Verilog实现,其中包含了时间检测、频率跟踪和码跟踪三个模块。GPS信号由载波频率和导航数据组成。跟踪捕获算法的目标是通过对接收到的信号进行处理,从而获取到准确的载波频率和导航数据。

PixelEnigma的博客 1108

深入理解C指针

一维数组是线性结构,用索引访问成员,由于c语言没有强制规定边界,无效索引会造成不可预期的行为。​​数组的内部表⽰不包含其元素数量的信息,数组名字只是引⽤了⼀块内存。对数组做sizeof 操作会得到为该数组分配的字节数,要知道元素的数量,只需将数组长度除以元素长度,如下所⽰,打印结果是5:​​‍。

万能的小陈的博客 1165

使用geneHapR进行基因单倍型分析(以vcf文件为例)

如下图所示,可以看到,用户需要准备的包括:基因型文件、注释文件和样本信息文件,以及后续会用的表型文件。输出的主要内容有:变异位点的可视化、单倍型网络、地理分布、表型比较和连锁不平衡热图。geneHapR的工作流程。

沉香best的博客 5941

深入理解 C 指针

深入理解 C 指针

青年有志 4329

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

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

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

cainiaochufa2021的博客 5722

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C语言——深度理解指针

当大家初次接触指针时,往往会感到困惑甚至头大,仿佛陷入了一团迷雾。指针的本质是一个存储内存地址的变量。通过指针,我们可以间接访问和修改内存中的数据,这种间接性使得指针在处理函数参数传递、动态内存分配、数据结构构建等场景时,展现出无与伦比的优势。例如,在函数调用中,通过传递指针作为参数,函数可以直接修改调用者提供的变量,而无需进行额外的数据拷贝,大大提高了程序的运行效率。在动态内存分配方面,指针更是不可或缺,它允许程序在运行时根据需要申请和释放内存,为实现复杂的数据结构和算法提供了可能

专注 C++ 后端开发与 Linux 系统编程,深耕 STL 原理、多线程、内存管理、网络编程与服务端开发。用通俗语言拆解晦涩知识点,持续输出高质量学习笔记、踩坑复盘与面试干货。 2278

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

关于C指针的理解

一级指针: C语言中,我们最常见的指针的形式就是一级指针了。比如: int *p; 这是一个指向整型变量的指针。 char *p; 这是一个指向字符型数据的指针。 从定义上看,不难发现,指针它也是一个变量。 所以以后见到指针也不要慌,它就是一个变量。 那么指针变量里究竟存储的是什么呢? 相信大家也都知道,那就是一个地址。 假设有一个变量 int a = 520; 那么a的地址就是 &a. ...

Mr.yang的博客 275

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

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

保护小周ღ的博客 2824

【C语言】如何理解多级指针?

指针是我们学习C语言的难点之一,其中多级指针更是让我们头疼,里面设计到很多变量地址的转换,所以今天我就用最简介的图来带你去真正的了解多级指针运行机制。

感谢您的关注! 902

C语言指针专题——如何理解指针

指针,传说中是C语言中的一个难点,且是难点中的难点。本文在教材的基础上,再详细地谈谈“指针”这个东东,力争让大家能理解它。 一、指针的概念 关于指针的定义,很多教材一般给出“它是一个地址”,“存储的是变量的地址”,“指向了一个值”等等描述。这样描述其实也没错,但是就是不那么好理解。我觉得要理解指针,无需给出什么定义,只需讲透如下5个点,我认为基本就可以理解...

C语言学习答疑 256

C语言指针和数组理解

今天看《狂人C》关于指针这一章,感觉自己C语言对于指针的理解确实更进一步了,作者代码命名和格式虽然不怎么样,但是确实理解透彻,讲得通俗,对于我这样的入门级选手还是不错的。     首先关于指针的几个结论的理解:     指针存储大小与操作系统位数有关,一般装的是32位的操作系统,那么指针输出来显示的便是32位,合4字节,64位边是8字节,特别注意的是这个存储空间与存放数据的大小不是一个概念,这

onwer3的专栏 790

c语言如何理解指针的指针?

当你想找一本书时,你首先查看索引卡片上的书名和书架号,然后根据这些信息去相应的书架上找到那本书。在这个过程中,索引卡片就像是指针,它不包含书的内容(数据本身),但它告诉你去哪里找到这本书(数据所在的内存地址)。在C语言中,指针是一个非常重要的概念。指针本质上是一个变量,它的值不是数据本身,而是存储数据的内存地址。指针允许程序直接访问和操作内存中的数据,这在很多情况下非常有用,比如在处理数组、字符串和动态内存分配时。在这个比喻中,书籍代表数据,书架代表内存,而图书馆的索引卡片则是指针。

weixin_55021541的博客 1027

C语言指针的理解

最近在重温C语言,所谓基础不牢地动山摇,C语言相对简单,但是指针却是相对复杂的存在,为了以后方便自己查看,做个笔记。指针存储地址,可以使用指针实现原变量的值传递,在复杂算法中,使用指针可以很方便快捷的实现算法设计。.........

yinfeng的博客 454

关于C指针的一些理解

有时总被指针的用法及类型所困扰,那我简单理解一下指针。指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。如下例子:

华清远见 | 程序员的学习天堂 643

C 语言指针怎么理解?

而指针虽然也有类型,但是却并不是要求一定要指向该类型的数据(至于指针的类型的作用后面会讲),指针有点像万能钥匙,虽然指定打开这某种门,但是其他门也是可以打开的(当然读取数据可能会有错误),更厉害的是可以移动任意位置(算术运算挪动指针指向)去打开其他门,门牌号(内存地址)也是暴露给我们的。(上面的比喻可能不是很恰当或者难以理解,简单来说就是我可以使用指针直接操作内存,读也好,写也好,怎么样都好,内存的数据尽在我手中,内存的命运尽在我手中,我想读哪里的数据,我想往哪里写什么数据,都随我意。

南风fahaxiki 580

对于C语言指针的理解

对于C语言指针的理解 学习c语言中最难得部分就是指针了 指针是什么? 指针本身是一个变量,它存储的是数据在内存中的地址而不是数据本身的值。它的定义如下: 指针的形式: 类型 *变量名 比如int *p就是一个整型的指针 char *p则是一个字符型的指针 如何把一个元素的地址给指针p p=&a是将变量a的地址给指针p. 如何得到指针p对应的值 a=*p是将指针p对应的值给变...

qq_43612421的博客 6055
上一篇: (Linux)基础指令与基本操作
下一篇: (C)操作符 小结
giraffe_255
博客等级 码龄9年 9粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值