2016 - 2024

感恩一路有你

c++ new的用法 C语言指针到底是什么,该怎么用呢?

浏览量:2818 时间:2021-03-12 20:06:53 作者:admin

C语言指针到底是什么,该怎么用呢?

在C语言中,我们可以认为指针是地址,但是是特定内存单元的地址。

如果我们在C语言中定义一个int变量a:

int a;

那么计算机将分配一个4字节的地址(在VC中,在某些C语言版本中,它可能是2字节)来存储a的值。由于内存中的每个字节都有一个地址,哪个地址是a的地址?我们不能用四个地址同时表示a的地址,所以在C语言中,我们把这个空间的第一个字节(四个字节)的地址作为变量a的地址,也就是第一个地址。

然后我们定义一个指针变量,例如:

int*p;

然后使用address操作符获取a的第一个地址并将其分配给指针变量p,例如:

p=&A;

现在a的地址存储在指针变量p中,我们称p为a的指针。

C语言能干什么?

我已经在C上工作了六年,并且我觉得这个领域的需求还是很大的

第一,嵌入式设备:几乎所有的硬件设备都离不开C,手机和Android设备都是Linux内核,纯C,硬件都是驱动的,都是C,单片机,数据机。

第二,网络设备:各种网络设备、光纤设备、交换机、防火墙、小型家庭路由器、TCP/IP协议都是用C语言编写的,C语言的需求和网络的发展空间一样大。

第三,服务器端:大部分服务器端程序都是C,精通nginx和squid,可以使公司上市,如Netshop技术。云服务离不开C。亚马逊,业界最强大的云,不能靠买书来做这么多。还有流行的大数据、IPv6等,涉及的业务非常广泛。很多工具都是用C写的,比如PHP,python…

但是C不是那么简单,不仅仅是语法,比如Linux驱动程序,你应该熟悉内核架构,并且有一些硬件知识。C有很多开源代码要看。简而言之,指针是表示地址的无符号整数。

所以仅仅理解指针是不够的。您还需要知道指针指向的数据空间是如何排列的。这可能涉及到一些与特定CPU/OS相关的知识。如果我们能用计算机体系结构的知识来理解它,它会更深刻、更准确。

例如:

如何存储float/double/long double?

如何在数据空间中组织阵列?

字符串是如何存储的?

如何存储结构和联合体?

位域组织

具体CPU相关部分如下:

整数的存储将涉及CPU大小的指定

浮点数的存储直接关系到FPU的设计

此外,还有一些扩展知识,涉及内存的分配和释放:如何在程序中分配内存?(malloc/free)

什么是堆和堆栈?

总而言之:指针是地址和整数。但要充分利用它,我们需要了解计算机存储空间的分配。困难在这里,突破在这里。

c++ new的用法 c++指针详解 c语言使用指针的好处

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。