指针和数组,指针数组和数组指针有什么区别?

发布于 科技 2024-06-03
20个回答
  1. 匿名用户2024-01-29

    首先我想解释一下:数组名称是一个指针,它指向存储数组元素的一段内存,那么数组元素是如何引用的,我给大家举个例子。 例如,a[3],编译系统将首先找到数组的第一个地址,即a,然后根据中的值确定地址偏移量,即3,从而确定要引用的元素是地址a+3所指向的单元的内容。

    你知道它叫什么吗? 它不仅仅是一个“方括号”,在 C 语言中被称为“部分地址运算符”,它让你了解它的作用。 在 c 中,它可以重载。

    理解了以上一点之后,那么指针变量 p 和数组名称 a 具有相同的属性,即它们都是指针。

    1)P+1,A+2,P++,P=P+1,P-A当然都是合法的。因为它们是同一类型数量之间的运算。 只是这个量与一般存储的数据量不同,它存储的是地址。

    2) a++, a=a+1, a=a-1 是非法的,因为一旦为数组分配了内存空间,它的第一个地址就被确定,这相当于一个常量,这个常量怎么能改变呢?

    在这里,你可能会有点困惑。 但我只想说,“对变量(或常量)的引用与更改变量(或常量)不同”,你可以弄清楚。

    例如,p-a、a-2等只是参考a的值进行计算,但a本身的值不变,而a++,即a=a+1,是硬着头皮想改a,你看,是这样吗? 也许你用另一种方式写它看起来更直观,例如:k=p-a 和 a=a-1

    3)至于他们的意思,我之前已经说过了。既然 p,a 是指针并存储地址,那么对它们的操作当然是更改地址的操作,例如,p+1 指向地址为 p+1 的存储单元,。。

    对于A++,A=A-1这些非法家伙来说,不用说,就是在试图改变有用的数据单位,这是绝对不能容忍的,我们需要的是稳定性。。。呵呵。

  2. 匿名用户2024-01-28

    int a[10], a 是静态内存中的常数。 有一个固定的位置。

    ++ 对他来说,依此类推,相当于 对于常量 int a = 100;a++;

    是非法的。 p 是一个指向 a 的指针,他自己的值可能在堆栈中或内存中,但 p=a;

    例如,0x88660 到 P

    就是给他A的地址,他所说的p+1,a+2,p++,p=p+1,p-a是什么意思? 实际操作是地址的a。 相当于0x88660+4,0x88660+8....

  3. 匿名用户2024-01-27

    p+i 是向后移动 1 的指针。

    例如,*p=a[0],则 *(p+i)=a[i]a+2 a[10] 中的 a[10] 表示数组 a[10] 的第一个地址,则 a+2 是 a[0+2]=a[2]。

    p++ 与 p=p+1 相同,这意味着更改指针以使其指向下一个指针。

    p-a 表示几个元素的差异。

    A 是数组的第一个地址,但请记住,它不是指针,因此对他的操作毫无意义。

  4. 匿名用户2024-01-26

    指针数组和数组指针之间的主要区别如下:

    1. 数组的名称不能更改,但指向数组的指针可以更改。 字符串指针指向的字符串中的字符不能更改,而字符数组中的字符可以更改。 在查找数组的长度时,可以通过借用数组的名称来获取数组的长度,但不能通过借用指针来获取数组的长度。

    2.数组名称的指针不能更改,但可以更改数组的指针。 因为数组名称的点是不能改的,所以使用autoincrement运算符自动增量会改变它的点,这是不对的,数组名只能指向数组的开头。

    3.指针数组是一个数组,数组的元素都是指针,数组占用的字节数由数组本身决定。 数组指针是指向数组的指针。 在 32 位系统中,它始终是 4 个字节,它指向的数组是多少个字节。

    4.字符串指针指向的字符串中的字符不能更改,而字符数组中的字符可以更改。 指针数组本身就是一个数组,但其中存储的数据类型不是int,也不是char这样的基本类型,而是一个指针类型,说白了就是地址。

  5. 匿名用户2024-01-25

    指针数组:表示一个数组,数组中的每个变量都是一个指针变量。 数组指针:表示指针类型变量,此指针变量指向数组。

  6. 匿名用户2024-01-24

    它们之间的区别在于,指针数组表示指针变量数组,这意味着其中的所有元素都是指针变量,而数组指针表示它是指向数组的指针。

    那么指针变量存储的地址必须是数组的第一个地址,并且必须是指向某一行的地址,如数组中的a[3][4]、a+2等,不能是指向某列的特定地址,如&a{2][1]、a[2][1]等。

    指针数组:指针数组可以说是指针的数组,这个变量就是一个数组。 其次,指针修饰数组,这意味着数组的所有元素都是指针类型,在 32 位系统中,指针占用四个字节。

    数组指针:数组指针可以说是指向数组的指针。 此变量是一个指针。 指针由多次定义,这意味着指针包含数组的第一个地址,或者指针指向数组的第一个地址。

    基于上面的解释,你可以理解指针数组和数组指针之间的区别,因为它们基本上是变量的类型。

  7. 匿名用户2024-01-23

    数组指针 指向数组的指针是指向数组的类型指针; 指针数组 指针数组是元素是指针的数组。

  8. 匿名用户2024-01-22

    这是一个文字游戏,指针数组的含义是有好几组指针,它强调的是数组的概念,而数组指针强调最后两个词,即指针。

  9. 匿名用户2024-01-21

    指针数组是指针序列,而数组指针是指向数组的指针。 两者的类型不同,可以看看C语言或者C++书,哪个比较详细。

  10. 匿名用户2024-01-20

    数组指针只是一个指针变量,似乎在 C 中专门用于指向二维数组,它占用了指针在内存中的存储空间。 指针数组是多个指针变量,它们以数组的形式存在于内存中,占用多个指针的存储空间。

    还应该注意的是,当用于同时指向二维数组时,引用与具有数组名称的引用相同。

  11. 匿名用户2024-01-19

    对于指针数组,首先,它是一个数组,我们知道数组的元素是:指针,换句话说,数组存储一个指针。 此外,数组本身占用多少字节由数组本身决定;

    就数组指针而言,第一个是指针,数组指针指向一个数组,也就是说,它是指向数组的指针,唯一可以确定的是它在32位系统下占据了4个字节,但是在数组中指向多少字节是无法确定的, 这取决于具体情况。

  12. 匿名用户2024-01-18

    组只是在堆栈中定义的一个连续变量,它的第一个地址是一个指针。

    不仅数组有指针,而且所有变量都有指针,指针是内存中的地址,就像房间必须有房间号一样。

    在 C C++ 语言中定义指针是在堆栈中打开一个内存空间来存储它指向的内存地址,然后给指针赋值,即将地址值赋值给刚刚打开的内存空间,然后通过访问内存中的地址值间接访问该地址下存储的数据。

    如果地址值指向静态存储区域,例如字符串常量,当然不能修改该点的内容。

  13. 匿名用户2024-01-17

    1.指针:系统为变量打开一个单元格,指针指向该单元格的变量值。

    数组和指针之间的唯一区别是不能更改数组名称指向的地址。

    int a[10];

    int *p,n;

    p = a;

    有几种方法可以获取第一个元素的值:

    n =a[0];

    n = *p;

    n = p[0];

    n = *(p+0) ;

    但是,以下声明是非法的:

    readings = totals;非法! 读数总数 = dptr 无法更改; 非法! 总计无法更改

    数组名称是一个指针常量。 除了它们所代表的数组之外,不能使它们指向任何其他内容。

  14. 匿名用户2024-01-16

    区别:C将内存划分为四个区域,并将通用变量和数组放在内存的堆栈区域,因此数组在C的定义中只是一组同类型的普通变量,即使这个变量可能是一个指针。 所以它的作用比指针要小得多,一个指针可以指向任何区域的任何数据,所以会感觉指针和数组名很像,但必须注意的是,数组名只是其中一个指针,它是一个只指向堆栈的指针,指针可以在有限的范围内移动, 即数组的长度。

    而且,数组在定义之初就已经有了自己的内存,如果一个通用指针没有指向某个内存块,它就没有自己的内存,也就是所谓的百搭指针。

    总结:不仅数组有指针,所有变量都有指针,指针说白了就是内存中的地址,就像房间必须有房间号一样。 在 C C++ 语言中定义指针是在堆栈中打开一个内存空间来存储它指向的内存地址,然后给指针赋值,即将地址值赋值给刚刚打开的内存空间,然后通过访问内存中的地址值间接访问该地址下存储的数据。

    如果地址值指向静态存储区域,例如字符串常量,则当然不能更改该点的内容。

    说到体验,建筑是一个加分项。

  15. 匿名用户2024-01-15

    功能是一样的,但本质实际上是一个自定义地址。

    区别在于指针只定义一个地址。 数组是一组自定义地址,数组变量表示起始地址。

  16. 匿名用户2024-01-14

    1. 数组是在内存中连续的一段数据。

    2. 指针是指向内存空间的变量。

    int a[10];

    int *p,n;

    p = a;

    有几种方法可以获取第一个元素的值:

    n =a[0];

    n = *p;

    n = p[0];

    n = *(p+0) ;

    3.区别在于数组是编译器分配的空间,变量名不能再赋值; 另一方面,指针可以重复赋值(除非定义为 const)。

    例如:p = a; 没错。

    a = p;错误。

  17. 匿名用户2024-01-13

    指针可以指向数组,数组可以是指针数组。

  18. 匿名用户2024-01-12

    数组的元素可以通过指针进行操作以更改其内部值。

  19. 匿名用户2024-01-11

    右。 数组指针是指向数组地址的指针,数组地址本质上是一个指针; 指针数组是一个数组,其中数组的元素是一个指针(例如 int *p[4],它定义了三个指针:p[0]、p[1]、p[2] 和 p[3],它本质上是一个数组。 在某些情况下,数组指针的使用类似于指针数组,请务必注意其中的区别。

    p 是一个指针变量,它指向包含 4 个 int 元素的一维数组,其中 p 在它指向的一维数组的长度中递增。

    p+i) 是一维数组 a[i][0] 的地址;*(p+2)+3 表示 a[2][3] 地址(第一行为 0 行,第一列为 0 列),*p+2)+3) 是 a[2][3] 的值。

  20. 匿名用户2024-01-10

    在 C 语言中,数组指针和指针数组是两个不同的概念。

    数组指针是一种指向数组的指针。 例如,如果有一个数组 int a[10],则 int* p 是指向数组 a 的数组指针。

    指针数组是一个数组,其中数组的元素是指针。 例如,如果有一个指针数组 int* p[10],则 p[0] 是一个指针,p[1] 是另一个指针,依此类推。

    在 C 中,数组指针和指针数组的使用方式也不同。 数组指针可用于访问数组中的元素,例如 *p 是数组 a 中的第一个元素; 指针数组可用于访问指针数组中的指针,例如 p[0] 是指针数组 p 中的第一个指针。

相关回答
22个回答2024-06-03

数组和指针之间的区别:

数组名称确实表示指向数组第一个地址的指针,但是这个指针很特殊,它的值(指针的值是指针指向的地址)不能被覆盖,只能覆盖它指向的内容,换句话说,数组名称只能指向数组的第一个地址, 如果有数组 char a;那么如果 a = a+1; 这是一个甚至无法编译的错误。 对于普通指针,例如,可能有一个数组 char a; 然后定义一个字符 *p = a; 然后使用 p = p+1 是有效的,这意味着指针 p 指向 &a[1]。 >>>More

9个回答2024-06-03

你学过C语言吗?

首先:和ch有什么关系,str是一个指针,ch,是一个数组的第一个地址,虽然这两个地址可以是同一个地址,但是它的含义却大不相同,ch不能用数组的名称给它赋值,定义大小后,就想想你给10个孩子糖, 你不能只给第一个,然后其他孩子会不理你,我不是说你也明白。 >>>More

19个回答2024-06-03

二维数组实际上是数组的数组,因此指向二维数组的指针是指向数组的指针。 考虑到这一点,选择返回类型很简单。 >>>More

9个回答2024-06-03

右键单击桌面上的空白区域,然后选择个性化。 >>>More

14个回答2024-06-03

a 检测10pF或更小的小电容。

由于10pf以下固定电容器的电容太小,只能用万用表测量定性检查是否有漏电、内部短路或击穿。 测量时,可以选择使用万用表R 10K块,用两支仪表笔随意连接电容器的两个引脚,电阻值应为无穷大。 如果测得的电阻(指针向右摆动)为零,则表示电容器因漏电或内部击穿而损坏。 >>>More