C/C++指针从0到99(详解)

news/2025/1/3 4:18:34/

目录

一,指针的基础理解

二,指针的基本使用

三,为什么要用指针

四,指针与数组的联系

五,指针的拓展使用

1)指针数组

2)数组指针

3)函数指针·

结构:返回类型  (*p)  (参数 1,参数 2);

实例:int (*add)(int a,int b)  =add ;(add代表加法函数,函数名就是函数的地址)

函数指针 有什么用呢,函数指针能简化很多代码量,让程序变得更加健壮,你可以思考,用一个函数指针模板只要返回值和参数相同就可以适应功能不同的函数,大量减少重复代码。

6)sizeof 和stelen 的补充


一,指针的基础理解

       在电脑中所有的数据都会被存储,我们大多数时候只需要一部分数据,那我们如何准确找到那些数据呢,这个时候就需要一些编号来找到数据,像我们身份证上的编号一样,在计算机中每个字节都有自己的编号,而指针是用来存储这些地址编号的。

二,指针的基本使用

      一级指针的结构是:(类型 ) + (* )+(名称),例如:int * pa;这个就是一个int 类型的一级指针,对其解引用可以获得指针指向空间里面的内容,二级指针则是存储一级指针的地址,例如:int * *paa =&pa;对其解引用一次可以获得一级指针的指向的内容,在解引用一次可以获得一级指针指向的内容,以此类推可以理解三级,四级指针。

三,为什么要用指针

     首先指针最广泛的用法是在函数传参的时候,众所周知,一遍数据类型在传参数时,大部分是拷贝,函数中的改变无法影响其他函数中的实参,而因为指针和其他的不一样,指针是直至本质(地址),只要将实参的地址传过去,通过形参的指针找到地址进行,操作可以避免因为拷贝导致的无法改变问题。其次,指针能对数据进行更加精准的操作,能够进行通过强制转化进行字节上的操作。指针也能简化大量的代码量,这些优点在我们日后进行使用时感觉到的。还有很多优点我就不一一列举了,大家有兴趣可以网上找资料。

四,指针与数组的联系

        数组和指针的联系可谓是千丝万缕,数组的实质就是指针,数组的名称就是第一个元素的地址,指针也能用   [ ] 这种数组的形式表示,数组也能用指针  *(arr+i)的形式表示。接下来我展示一些数组和指针的转化和对应关系

int *arr              =               int arr[ ]

int (*p)[   ]         =              int  arr[ ] [ ]

五,指针的拓展使用

1)指针数组

结构:int *p[ ]

指针数组的实质还是一个数组,它的用途可以用来存储指针,方便使用,例如

int *pa=NULL;
int *pb=NULL;
int *pc=NULL;
int *arr[]={pa,pb,pc};

2)数组指针

结构:int (*p)[ ]

数组指针的本质则是一个指针,看起来结构和指针数组相同,但是不要忘记【 】和  *  优先级不同,数组指针的  p  是先与【】结合的,而指针数组是先与  *  结合的。指针数组可以存储二维数组等多位数组的地址,并且很方便的拿出,例如:

3)函数指针·

结构:返回类型  (*p)  (参数 1,参数 2);

实例:int (*add)(int a,int b)  =add ;(add代表加法函数,函数名就是函数的地址)

函数指针 有什么用呢,函数指针能简化很多代码量,让程序变得更加健壮,你可以思考,用一个函数指针模板只要返回值和参数相同就可以适应功能不同的函数,大量减少重复代码。

6)sizeof 和stelen 的补充

说先要认识到sizeof 和 strlen 的差别,sizeof 是只看()里面的类型,不会进入内存计算,如  int,数组则是 int [  10]。而 strlen 则是进入给的地址内存,找到"\0",如何统计字节数。

如果sizeof()里面的是指针,则结果是4||8,因为编译环境不同,指针大小不同,而strlen 里面只能放地址,别人可能会非法访问


http://www.ppmy.cn/news/788281.html

相关文章

UEFI模式改为BIOS模式

注意:uefi模式下磁盘分区为gpt,bios模式下为mbr! 1.启动模式bootmode选项更改为:legacy support。 2.优先启动boot priorlty 选项更改为: leagacy first。 3.关闭默认安装启动 secure boot 选项更改为:d…

电脑关机状态重置BIOS

本文已迁移至:https://www.aflyingfish.top/articles/96b163f4b033/

linux 重置bios密码忘记,Windows10专业版下重置BIOS密码的技巧

还有谁也不会在电脑的硬盘上保存带有个人或机密信息的文档或文件。我们不想要的信息可能落入任何人的手中,所以很多用户选择以某种方式保护他们的数据。有不同的方法,我们可以密码保护访问某些文件和文件夹,加密或通过在BIOS中添加一个密码来…

计算机bois界面无法保存,主板BIOS不能保存是怎么回事?

复制过来的,希望对你有帮助。 有些电脑使用一两年后时间后就会出现开机后系统报“Press F1 Resume”之类的错误,一定要按一下F1才能继续启动电脑,每次开机都这样,同时进桌面后会发现系统时间需要调整。 大概出现这类问题后&#x…

如何计算机硬盘恢复默认设置,恢复bios出厂默认值怎么操作【图解】

说到恢复bios出厂默认值就一定要先给大家介绍一下bios,bios是作为电脑启动的重要信息来读取位置的,如果设置的不好就会导致电脑没办法正常启动更不用说操作了,所以重新恢复bios出厂默认值的目的就是通过恢复bios来完成未知错误的修复,今天小编就是来给大家说说如何恢复bios…

AMD的华硕电脑BIOS虚化设置

不赘述太多,前面打开bios大家应该已经了解,和Inter不同的是最后一步,是AMD单独的一个虚化设置选项 把这个选项改为Enable就可以了

pycharm汉化

安装pycharm 不多说了,直接下载安装即可 汉化 file -setting plugins 输入chinese进行搜索 点击 进行安装,等待安装完成 安装完成需要重启,点击重启,等待重启完成即可 出现上图,说明汉化成功了

计算机组装与维护三—— 认识BIOS与CMOS 、设置常用BIOS、清除CMOS参数

计算机组装与维护三 一、认识BIOS与CMOS二、设置常用BIOS三、清除CMOS参数 一、认识BIOS与CMOS BIOS (Basic Input and 0utputSystem) 称为基本输入输出系统,主要负责计算机的启动、硬件的设置与驱动等。硬件设置保存在主板的CMOS (Comp lementary Metal Oxide Sem…