Day06 指针专题一

本贴最后更新于 447 天前,其中的信息可能已经时移世易

D6-01 指针的基本用法一​

  imageimageimageimage

  ‍

D6-02 指针的基本用法二

  imageimageimage​​​​​​​

  ‍

D6-03 指针的基本用法三

  ​image​​imageimage

赋值

  ​imageimage

  • 变量
  • 指针
  • 数组

  (32 位)指针占四个字节。操作系统和内存之间的数据线来决定的。image

  ‍

D6-04 指针的运算上

  ​image​​image​​imageimage​​image​​image​​image​​

  ‍

D6-05 指针的运算下

image

image​​

  ‍

D6-06 指针与数组

  ​imageimage​​imageimage​​image

数组反序(指针)

  ​image

  ‍

D6-07 指针与二维数组上

  ​imageimage​​

  ​imageimage​​

  ​imageimagea,a+1,a+2 是一行一行移动,但是加上*()编程一个一个移动。

  ‍

D6-08 指针与二维数组下

  ​image移动步长变了。

  ​image

  ​imageimage​​

  ​image

  a+i 是行,加上改变指针性质,加上列,*再取值。


  根据您提供的表达式 "((a+i)+j)",结合二维数组和指针的关系进行解释,可以理解为以下操作:

  1. 首先,有一个名为 a​ 的二维数组。
  2. 表达式 (a+i)​ 表示对数组 a​ 进行偏移,移动到第 i 行的位置。这个表达式返回的是一个指向一维数组的指针(即二维数组的第 i 行)。
  3. 接着,对 (a+i)​ 进行解引用操作 *​,得到该指针所指向的一维数组。
  4. 表达式 (*(a+i)+j)​ 表示对一维数组进行偏移,移动到第 j 列的位置。这个表达式返回的是一个指向数组元素的指针(即二维数组的第 i 行第 j 列的元素)。
  5. 最后,再次对 (*(a+i)+j)​ 进行解引用操作 *​,得到该指针所指向的真实值。

  综上所述,表达式 "((a+i)+j)" 的含义是:在二维数组 a​ 中通过指针和索引的组合,获取第 i 行第 j 列的元素值。

  请注意,具体的值取决于给定的二维数组 a​,以及变量 i 和 j 的具体值。这只是一般的解释,如果提供了具体的数组和索引值,我们能够进行实际的计算。


  *(a+i) = a[i]

  对于二维数组 a​,表达式 a[i]​ 表示数组 a​ 中索引为 i​ 的一维数组的==首元素地址==。换句话说,a[i]​ 是一个指针,它指向数组 a​ 的第 i​ 行的起始位置。

  因此,当我们使用 *​ 运算符对 a[i]​ 进行解引用时,即 *(a[i])​,它表示取出指针 a[i]​ 指向的地址中存储的值,也就是数组 a​ 中第 i​ 行的第一个元素的值。

  总结起来,对于二维数组 a​,a[i]​ 是指向数组 a​ 第 i​ 行的地址,而 *(a[i])​ 则是获取数组 a​ 第 i​ 行第一个元素的值。

  ‍

  ‍

  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    85 引用 • 165 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...