gpt4 book ai didi

objective-c - C 语法 `Type varname[integer];` 与 + 运算符一起使用时有什么作用?

转载 作者:行者123 更新时间:2023-11-30 21:22:54 25 4
gpt4 key购买 nike

我正在查看 some low-level Objective-C code,我看到了这个:

Byte seq[termLength];

(termLength 是一个 NSUInteger,在我的环境中是一个 unsigned longByte是一个 UInt8,它是一个 unsigned char)

我不太熟悉 Objective-C 的 C 部分...它有什么作用?在我看来,它似乎创建了一个名为 seq 的新 Byte 数组,其长度为 termLength ,但没有初始化其中的内存,但后来我看到这个:

memcpy(seq + bufLen, pre, preLen);

我对这部分很困惑。 bufLen 是一个 NSUInteger。如何将 NSUInteger 添加到 Byte[] 中?那会做什么?

最佳答案

你所描述的是一个C数组。您可以在此处阅读有关 C 数组的信息:

https://en.wikibooks.org/wiki/C_Programming/Arrays_and_strings

C 数组可以像指针一样使用,包括指针算术。所以,如果你添加 bufLenseq ,你最终得到的是一个指向位置 bufLen 的指针。字节到 seq 。所以(seq + buflen)[0]为您提供与 seq[bufLen] 相同的字节, (seq + buflen)[1]为您提供seq[bufLen + 1]等等。希望bufLen小于 termLength .

关于objective-c - C 语法 `Type varname[integer];` 与 + 运算符一起使用时有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49866672/

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