2016 - 2024

感恩一路有你

行指针的用法 C语言行指针?

浏览量:2373 时间:2021-03-17 21:08:56 作者:admin

C语言行指针?

例如,定义一个二维数组int a[3][4]={1,2,3,4},{5,6,7,8},{9,10,11,12}数组名,a是行指针,[0]是列指针。以本例为例,虽然a和a[0]地址相同,但指针类型不同,指针类型不同1运算,显然结果不同,所以(row pointer)1中的“1”表示一行中所有元素占用的字节数,而a[0]1,其中1是元素占用的字节数,是两个不同的概念。为了解释这个令人困惑的问题,我们可以用军事训练中的排队点名来解释。班长逐一检查班里的士兵是否在排队。班长每次移动都会经过一个士兵,而排长只检查排里的所有班级是否都在场。排长只从0班出发点到1班出发点。他似乎只走了一步,但实际上他跳过了10个士兵,这相当于一个1。班长面向士兵,排长面向班级,班长相当于列指针,排长相当于行指针。为了在一个类中找到一个士兵,我们必须给出两个参数

简而言之,指针是一个表示地址的无符号整数。

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

例如:

如何存储float/double/long double?

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

字符串是如何存储的?

如何存储结构和联合体?

位域组织

具体CPU相关部分如下:

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

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

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

什么是堆和堆栈?

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

行指针的用法 二维数组行指针和列指针 c语言行指针和列指针

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