查找数组中给定索引的第一个和最后一个字节的地址

Finding the address of first and last byte of a given index within an array

我想知道我对以下问题的回答是否正确:

假设您有一个 "int" 数组声明为:int myArray[20]。第一个字节在 该数组的地址为 1010。myArray[13] 的第一个和最后一个字节的地址是什么? int的大小是4个字节。

这意味着这个数组中的每个索引占用 4 个字节,对吗?如果是这样的话,myArray[13] 会在 myArray[0] 之后的 4x13 = 52 字节开始吗?这意味着第一个字节位于地址 1062,最后一个字节为 1065?

他们是

static_cast<char*>(&myarray[13])

static_cast<char*>(&myarray[14]) - 1

没有?

是的,你的计算是正确的。不过,请小心你关于 sizeof(int)4 的断言:我无法判断你是否指出了你平台的一个已证实的事实,或者你是否认为这是一个普遍常数(它是't).