gpt4 book ai didi

java - 了解 C 中声明的数组的指针运算

转载 作者:太空宇宙 更新时间:2023-11-04 06:13:52 24 4
gpt4 key购买 nike

<分区>

我正在尝试将一些 C 代码转换成另一种语言(例如:Java 或 C#)。问题是了解有关如何声明和使用这些数组的一些事情...

这是演示我的问题的最少代码:

static void some_function ( )
{
int16_t arr_tmpShort[120 + 40], *ptr0, *ptr1;
int offset = 5;

//assume that "arr_tmpShort" is now filled with some values
ptr0 = arr_tmpShort + 84 - offset;
ptr1 = arr_tmpShort + 85;

}

所以我需要第二个意见:

这一行:

int16_t arr_tmpShort[120 + 40]; 

正在创建一个数组来保存 160 个 Shorts 条目。那个 plus 符号除了简单的算术之外没有什么特别的,对吧?

问题:现在这些行

    ptr0 = arr_tmpShort + 84 - offset;
ptr1 = arr_tmpShort + 85;

很奇怪,因为我在数组上看到算术。
这对我来说是新的,经过一些研究后,我需要澄清以下哪一项更有效或更真实......

  • ptr0 = arr_tmpShort + 84 是否等于 Java/C# 作为 arr_tmpShort[84](数组中的一个位置)?
  • 是否被认为是ptr0 =
    • (arr_tmpShort[84] - 偏移量);//获取[84]短值并减去偏移量?
    • (arr_tmpShort[84 - offset]);//从数组中获取 [84 - offset] 短值?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com