首页
学习
活动
专区
工具
TVP
发布

初识C语言——初识指针什么内存,什么指针指针变量怎么用,指针的大小)

要认识指针,首先我们要知道什么内存。 1.内存 内存电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的 。...在C语言,有一种专门用来存储地址的变量,叫做指针变量。...("%c\n", ch); return 0; } 3.指针变量的大小 思考一个问题,整型变量的大小4个字节,char类型1个字节,double8个字节,那么指针变量的大小是多少?...为什么不同类型的指针变量大小一样的呢?又为什么4个字节呢? 原因指针用来存放地址的,所以指针变量的大小取决于地址的大小,而在同一平台上地址的大小固定不变的。...我们来验证一下: 在32位平台上: 4个字节 64位平台上: 8个字节 所以,我们得出结论: 指针变量的大小在同一平台固定的: 指针大小在32位平台4个字节,64位平台8

17710

c专题之指针-----什么指针

在今天开始写文章之前,插一个面试题,也是我自己这几天无意发现的;这里我以一个void set()函数,和void set1(void)函数(c语言里面没有函数重载这个用法,所以就这样区分写了)为示例:...(这个在实际开发当中,当然没有人吃饱了饭去这样写代码,但是往往在一些公司面试笔试题目就会有这种坑爹的题目,你说你对c语言掌握的好,但是有可能就因为这道题目,叫你说出它的区别了,你一下不知所措了,可能就被...一、什么指针?...要知道,指针变量也是一个变量,在内存中也是占内存的,只不过它不存放基本类型数据,而是存放其他基本类型变量的地址。既然指针变量也有自己的物理地址,那么指针变量的地址用什么 来存储呢?...2、指针使用三部曲:定义指针变量、关联指针变量、解引用 (1)当我们int *b定义一个指针变量p时,因为p局部变量,所以也遵循C语言局部变量的一般规律(定义局部变量并且未初始化,则值随机的),所以此时

27420
您找到你想要的搜索结果了吗?
是的
没有找到

C语言中“野指针”、“悬空指针”是什么

1、“野指针”(wild pointer) “野指针”(wild pointer):没有被初始化过的指针,所以不确定指针具体指向。...在实际的C语言程序开发中,定义指针时,一般都要尽量避免“野指针”的出现,可通过赋初值方式解决: void *p = NULL; void *data = malloc(size); 2、“悬空指针”(dangling...pointer) “悬空指针”(dangling pointer):指针最初指向的内存已经被释放了的一种指针。...例如以下示例代码: void *p = malloc(size); assert(p); free(p); // 现在 p “悬空指针C语言中的“悬空指针”会引发不可预知的错误,而且这种错误一旦发生...所以在实际的C语言程序开发中,为了避免出现“悬空指针”引发不可预知的错误,在释放内存之后,常常会将指针 p 赋值为 NULL: void *p = malloc(size); assert(p); free

1.5K50

在说CICD,到底什么CICD

引入 这篇文章自己工作多年对CI/CD的理解,纯属个人见解。 不想说太多概念性的东西,直接从技术人员实际能接触的过程来展开说说。另外我这篇只是想关注一些通用的流程,细节的不同这里不纠结。...合在一起通常包含这几个过程: 代码阶段 代码节点也可以叫开发阶段,这个阶段我们一般本地开发代码,这个阶段首先涉及到一些开发工具比如idea,vscocode等。...国内感觉最近几年对cr也越来越重视了,我之前在的一个公司,代码没有经过cr不允许发布到测试环境的。 关于cr阶段使用的工具,不同的公司一般不一样。...打包发布常用的工具jenkins,如果涉及到容器部署,这个阶段通常我们也会打包服务的镜像并且推送的镜像仓库(可以是私有仓库或者公有仓库)。...灰度部署指逐渐将生产环境流量从老版本切换到新版本。通常流量按比例分配的。例如 90% 的请求流向老版本,10% 的请求流向新版本。然后没有发现问题,就逐步扩大新版本上的流量,减少老版本上的流量。

63510

C语言指针(野指针)

目录 1:什么指针?...2:如何规避野指针 1.1:指针变量的初始化 2.2:指针越界访问 3.3:指针指向的空间如果我们还回去的话,就把指针指针置为NULL  4.4:指针使用之前检查有效性 1:什么指针?...野指针:就是指针指向的位置不可知(随机性,初始化,不正确,没有明确限制),指针变量在定义时如果未初始化,其值随机的,指针变量的值别的变量的地址,意味着指针指向了一个地址不确定的变量,此时去解引用就是去访问了一个不确定的地址...:当你指针不知道怎么赋值,就赋值给一个空指针 NULL Null在计算中具有保留的值,用于指示指针不引用有效对象。...空指针不应与未初始化的指针混淆:保证空指针与指向有效对象的任何指针进行比较。但是,根据语言和实现,未初始化的指针可能没有任何此类保证。它可能与其他有效指针相等; 或者它可能比较等于空指针

2.5K20

在说DeFi,到底什么DeFi?

现在网络上关于Defi的文章已经不少了,我完全认可Defi的潜力和光明前景,在本文中我只是想从最根本的概念上挼清楚大家都在说的Defi到底是什么东西。 有人说,Defi还不简单吗?...或者我们还可以再进一步延伸:Defi金融与通证经济是什么关系? 与资产数字化的是什么关系?与开放金融又是什么关系?...它们金融业务没错,但是并没有去中心化的特性,如果用数字货币金融业务,或者开放金融、可编程经济这些词表述这些业务可能要更加准确。 去中心化金融,我认为特指某一类业务。 到底什么DeFi?...自己掌握私钥这一点Defi的核心,因为Defi的中文翻译叫去中心化金融,去中心化核心的属性词,如果没有去中心化这个属性,那根本是称不上Defi的。 既然去中心化这么重要,那什么叫做去中心化呢?...Defi金融与开放金融、通证经济的区别 上面我们对什么Defi金融做了一个更加清晰具体的定义,要知道现在市面上除了最火的Defi金融,还有其它的概念,比如说开放金融,比如说通证经济,那这些概念之间有什么关系和异同点呢

23830

C语言——指针

目录 指针什么指针变量 使用指针变量的例子 通过指针引用数组 &数组名vs数组名 野指针指针成因 如何避免野指针 指针运算 指针什么?...指针c语言中的一个重要概念,也是C语言的一个重要的特色,正确而灵活地运用它,可以使程序简洁,紧凑,高效,每一个学习和使用c语言的人,都应当深入了解地学习和掌握指针,可以说,不掌握指针就是没有掌握C的精华也可以说...指针C语言的灵魂(doge) 由于通过地址能找到所需的变量单元,可以说,地址指向变量单元,打个比方,一个房间的门口挂了一个房间号2008,这个2008就是房间的地址,或者说,2008"指向"...那么问题来了 &arr数组名到底是什么呢?? 不如我们来段代码吧!  由此可以得出数组名和&数组名打印的地址一样的。 我们再来看一段代码!  ...16进制的C的10进制12,所以q+1和q相差4  p整型指针相当于sizeof(int)=4 q字符型指针相当于sizeof(char)=1; 以上就是我归纳指针的一些小结 如果能帮助友友们 -

2.2K20

C语言指针

本文目录 直接引用 一、什么指针?...二、指针的定义 三、指针的初始化 四、指针运算符 五、指针的用途举例 六、关于指针的疑问 指针C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很好,那你干脆说没学过C语言。...通过变量名引用变量,由系统自动完成变量名和其存储地址之间的转换,称为变量的"直接引用"方式 回到顶部 一、什么指针?...1.我们已经知道,"直接引用"直接通过变量名来读写变量 2.C语言中还有一种"间接引用"的方式(以变量a为例):首先将变量a的地址存放在另一个变量中,比如存放在变量b中,然后通过变量b来间接引用变量a...其实,我觉得这个问题跟"数组为什么要分类型"一样的。

3.2K60

C - 指针C语言指针的总结

C语言指针的总结 1. 变量 不同类型的变量在内存中占据不同的字节空间。 内存中存储数据的最小基本单位字节,每一个字节都有一个内存地址,这个地址一个十六进制的数。...什么指针:变量的地址叫做指针指针就是地址,地址就是指针。 下面通过一张图可以更直观的理解内存中的地址 ? 内存中的地址演示图 2. 指针 指针C语言的灵魂。指针变量占据8个字节。...那么什么时候使用指针作为参数呢?...无论指针什么类型在内存中都是占据8个字节。 那为什么指针还要分类呢?...指针什么要分类型? 多级指针 一个指针变量中存储的一个一级指针的地址,那么它就是二级指针,一个指针变量中存储的一个二级指针的地址,那么它就是三级指针

4.1K81

C语言_初识C语言指针

前言 内存电脑上特别重要的存储器,计算机中程序的运行都是在内存中进行的。 所以为了有效的使用内存,就把内存划分成一个个小的内存单元,每个内存单元的大小一个字节。...为了能够有效的访问到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址 编号 = 地址 = 指针 指针变量 = 变量 = 存放地址的变量 ---- 一、指针 … 一个内存单元多大比较合适.../0 32位机器,上面有32根地址线 2的32次方个字节的空间 - - - 4,294,967,296 Byte — 4GB ---- 通过pa里存放的a的地址找到a ---- 三、指针变量的大小...指针变量用来存放地址的 32位机器上:地址32个二进制位,这个地址要存储的话要4个字节,所以在32位机器上,指针变量的大小4个字节。...64位机器上:地址64个二进制位,这个地址要存储的话要8个字节,所以在64位机器上,指针变量的大小8个字节。

14130

C语言指针

学习 C 语言指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针无法执行的。所以,想要成为一名优秀的 C 程序员,学习指针很有必要的。...接下来让我们看看什么指针什么指针指针和其他的int, float等类似, 一种类型. 有类型就有相应类型的变量和常量. 本文主要讨论变量的情况....指针变量就是一种变量, 和其他种类的变量类似, 但指针和其他变量又有区别. 首先C语言作为一种类型语言, 每个变量都会有几个属性. 变量名称. 变量类型. 变量的值....Address stored in ip variable: bffd8b3c Value of *ip variable:20 类型 对于C语言来说, 搞清楚变量的类型相当重要, 涉及到指针的时候就更加重要...整个来说: next一个指针, 指向一个函数, 函数的返回值也是一个指针, 指向一个类型为char的常量指针. C语言为类型语言, 即每个变量都有类型.

2.6K20

C语言: 指针

目录 概念: 指针的类型 指针的解引用 野指针指针的成因 空指针 指针与数组 指针在数组中的使用: 二级指针 ---- 概念: 在计算机科学中,指针(Pointer)编程语言中的一个对象,利用地址...因此,将地址形象化的称为“指针”。意思通过它能找到以它为地址 的内存单元。 总的来说,指针就是变量,用来存放地址的变量。...指针的类型与指向的目标的类型一致,指针指向的目标的地址。...野指针 概念: 野指针就是指针指向的位置不可知的(随机的、不正确的、没有明确限制的)指针变量 在定义时如果未初始化,其值随机的,指针变量的值别的变量的地址,意味着指针指向了一 个地址不确定的变量...0; } 指针指向的目标变量的地址,那么二级指针指向的就是指针的地址。

1.9K70

什么指针被誉为 C 语言灵魂?

直到后来对内存和指针有了更加深刻的认识,才慢慢会用 C 写上千行的项目,也很少会再有内存问题了。(过于自信 「指针存储的变量的内存地址」这句话应该任何讲 C 语言的书都会提到吧。...记住上面这两张图,这就是编程语言中所有变量的在内存中的样子,不管 int、char、指针、数组、结构体、对象... 都是这样放在内存的。 二、指针什么东西? 2.1 变量放在哪?...所以当你去查看 C 语言编译后的汇编代码,就会发现变量名消失了,取而代之的一串串抽象的地址。...大家初学 C 语言的很多 coredump 错误都是类似原因造成的。 所以最后输出的 5。 为什么要讲这种看起来莫名其妙的代码?...实际上,我们完全可以用 C 语言去模仿的。 这就是为什么一直说 C 语言基础,你真正懂了 C 指针和内存,对于其它语言你也会很快的理解其对象模型以及内存布局。

68010

C语言 | 指向指针指针

“要成为绝世高手,并非一朝一夕,除非天生武学奇才,但是这种人…万中无一” ——包租婆 这道理放在C语言学习上也一并受用。...在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从C语言小白进阶到高手,需要经历的日积月累的学习。 那么如何学习呢?当然每天都练习一道C语言题目!! ? 作者 闫小林 白天搬砖,晚上做梦。...例82:C语言用指向指针指针的方法对n个整数排序并输出;要求将排序单独写成一个函数;n个整数在主函数中输入,最后在主函数中输出。...解题思路:读者看着道题的时候,首先要观察一下有什么规律,然后指向指针指针在上一道练习题中已经有了铺垫,读者可以联系上一道题去熟练使用指向指针指针。...C语言源代码演示: #include//头文件 int main()//主函数 { void sort(int **point,int number); //sort排序函数声明

2.9K32

C语言中“指针”和“指针变量”的区别是什么

比较严格的说法这样的: 系统为每一个内存单元分配一个地址值,C/C++把这个地址值称为“指针”。如有int i=5;,存放变量i的内存单元的编号(地址)&i被称为指针。...“指针变量”则是存放前述“地址值”的变量,也可以表述为,“指针变量”存放变量所占内存空间“首地址”的变量(因为一个变量通常要占用连续的多个字节空间)。...比如在int i=5;后有一句int *p=&i;,就把i的指针&i赋给了int *型指针变量p,也就是说p中存入着&i。所以说指针变量存放指针的变量。...有一个事实值得注意,那就是有不少资料和教科书并没有如上区分,而是认为“指针指针变量的简称”,如对int *p=&i;的解释:声明一个int *型指针p,并用变量i的地址初始化;而严格说应该是声明一个...int *型指针变量p才对。

54130

C语言指针(三)函数指针

函数指针 在我们定义函数的时候,编译器也会在内存空间给函数开辟一个内存,而该内存的首地址就是函数的内存地址,而函数指针就是指向该内存地址的。...3.1 函数 众所周知,C语言面向过程的语言,或者称函数式编程。 而在C语言中,函数也确实起了很大的作用,在C语言的学习中,你见过最多的可能就是main函数,同时也是你第一个见得函数。...我们来看看这个main函数 int main(){return 0;} 我们把他浓缩成一行,比较好瞅 ❝ int返回类型,每个函数都要有这个,不返回东西的函数的返回值类型为void main函数名,...固定的,无法重载 括号里面参数列表,一般默认没有,也可以传递void或者int argc, char const *argv[] {}大括号里面函数的具体实现代码,比如说printf("Hello...; return 函数结束的关键字,返回值为0表示程序正确运行,为其他表示有其他异常 切记main函数不要void main(){},这个真的很重要 ❞ 3.2 指向函数的指针 见名知意,这个东西也是一个指针

2K00

C语言C语言数组和指针

---- 友情提醒:本文可能全csdn最详细的指针内容了,希望你能用心读下去 前言 接下来的讲解部分指针的进阶,包含多种指针以及对应的数组,这部分章节对我们来说很重要,也是c语言中的重点模块儿,重要性不言而喻...(c/c++会把常量字符串储存到单独的一个内存区域中) 当这两个指针指向同一个常量字符串时,实际上就是指向同一块儿地址**(指针就是地址,地址就是指针)** 2.数组指针 2.1数组指针的定义 1.数组指针嘛...其实你可以这么想,当0的类型函数指针类型时,我们可以想一下,什么东西可以拥有类型呢?...,这个函数的返回类型int型的指针,函数的参数两个int 4.指向函数指针数组的指针 4.1概念解释: 这里的这个指针其实也就是个地址而已** 永远记住指针就是地址,地址就是指针** ,那这个地址究竟是什么呢...1.可以接收他本身,(也就是一个存放一级指针地址的二级指针) 2.可以接收某个一级指针变量的地址 3.也可以接收指针数组的数组名 三、数组部分 1.指针数组 这个真没什么可说的了,简直太简单了,我们随便起个数组名加上个数组大小

63.6K22

C语言指针详解

然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识。所以我想通过一篇文章来尽可能的讲解指针,以对得起这个文章的标题吧。 为什么需要指针?...还有:C语言中的一切函数调用中,值传递都是“按值传递”的,如果我们要在函数中修改被传递过来的对象,就必须通过这个对象的指针来完成。 指针什么?  ...空指针  指向空,或者说不指向任何东西。在C语言中,我们让指针变量赋值为NULL表示一个空指针,而C语言中,NULL实质 ((void*)0) ,  在C++中,NULL实质0。  ...既然存放在内存中,那么函数也是有自己的指针的。  C语言中,函数名作为右值时,就是这个函数的指针。  ...附加知识 指针和引用这个2个名词的区别。他们本质上来说是同样的东西。指针常用在C语言中,而引用,则用于诸如Java,C#等 在语言层面封装了对指针的直接操作的编程语言中。

2K20
领券