鱼C论坛

 找回密码
 立即注册
查看: 1060|回复: 3

[已解决]在指针与数组中这几种赋值怎么区分

[复制链接]
发表于 2023-6-8 15:12:02 | 显示全部楼层 |阅读模式
1鱼币
*p=&a[0]与p=&a[0]与*p=a[0]与p=a
最佳答案
2023-6-8 15:12:03
在C语言中,这四种赋值有很大的区别。为了理解这个区别,我们首先需要了解一些基本概念:数组和指针。

首先,数组 a 是一个储存多个同一类型元素的数据结构, a[0] 代表数组的第一个元素。

其次,指针是一个变量,其值为另一个变量的地址,也就是指向另一个变量的引用。假设 p 是一个指针。

现在,我们来看看你给出的这四种赋值方式:

1.  *p = &a[0];  
   这种赋值方式在语法上是错误的。因为 &a[0] 是一个地址(指向数组的第一个元素),而 *p 是指针 p 所指向的值,不能直接把地址赋给一个值。

2.  p = &a[0];  
   这是正确的赋值方式。这里,我们把数组 a 的第一个元素的地址赋给指针 p 。现在, p 指向数组的第一个元素。

3.  *p = a[0];  
   这是正确的赋值方式,假设 p 已经指向某个有效内存。在这里,我们把数组 a 的第一个元素的值赋给指针 p 所指向的位置。现在, p 所指向的位置的值等于 a[0] 。

4.  p = a;  
   这也是正确的赋值方式。在C语言中,数组名可以被解释为数组第一个元素的地址。所以这行代码的意思是让指针 p 指向数组 a 的第一个元素。这个表达式等同于 p = &a[0]; 。

最佳答案

查看完整内容

在C语言中,这四种赋值有很大的区别。为了理解这个区别,我们首先需要了解一些基本概念:数组和指针。 首先,数组 a 是一个储存多个同一类型元素的数据结构, a[0] 代表数组的第一个元素。 其次,指针是一个变量,其值为另一个变量的地址,也就是指向另一个变量的引用。假设 p 是一个指针。 现在,我们来看看你给出的这四种赋值方式: 1. *p = &a[0]; 这种赋值方式在语法上是错误的。因为 &a[0] 是一个地址(指 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-8 15:12:03 | 显示全部楼层    本楼为最佳答案   
在C语言中,这四种赋值有很大的区别。为了理解这个区别,我们首先需要了解一些基本概念:数组和指针。

首先,数组 a 是一个储存多个同一类型元素的数据结构, a[0] 代表数组的第一个元素。

其次,指针是一个变量,其值为另一个变量的地址,也就是指向另一个变量的引用。假设 p 是一个指针。

现在,我们来看看你给出的这四种赋值方式:

1.  *p = &a[0];  
   这种赋值方式在语法上是错误的。因为 &a[0] 是一个地址(指向数组的第一个元素),而 *p 是指针 p 所指向的值,不能直接把地址赋给一个值。

2.  p = &a[0];  
   这是正确的赋值方式。这里,我们把数组 a 的第一个元素的地址赋给指针 p 。现在, p 指向数组的第一个元素。

3.  *p = a[0];  
   这是正确的赋值方式,假设 p 已经指向某个有效内存。在这里,我们把数组 a 的第一个元素的值赋给指针 p 所指向的位置。现在, p 所指向的位置的值等于 a[0] 。

4.  p = a;  
   这也是正确的赋值方式。在C语言中,数组名可以被解释为数组第一个元素的地址。所以这行代码的意思是让指针 p 指向数组 a 的第一个元素。这个表达式等同于 p = &a[0]; 。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-8 18:13:48 | 显示全部楼层
这里介绍四种不同的指针和数组赋值方式:

  • `*p = &a[0]`

    这个语句将`p`指向数组`a`的第一个元素(也就是下标为0的元素),使用`*p`可以访问该元素的值。
  • - `p = &a[0]`
    这个语句和上面那个非常相似,但是在不使用解引用符(`*`)时,`p`指向数组`a`的第一个元素的地址,不能直接访问该元素的值。如果想访问它的值,需要使用解引用符(`*p`)。
  • - `*p = a[0]`

      这个语句将指针`p`所指向的内存地址赋值为`a[0]`的值。使用解引用符(`*p`)可以通过该指针访问被赋值的变量。
  • - `p = a`

    这个语句将指针`p`赋值为数组`a`的首地址,即`a[0]`的地址,可以使用指针来遍历整个数组。使用解引用符(`*p`)加上偏移量(如`*(p+1)`表示`a[1]`)可以访问数组中的元素。


求最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-6-9 07:16:42 | 显示全部楼层
在C语言中,数组名可以被解释为数组第一个元素的地址。
关键!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 10:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表