查找数组中给定索引的第一个和最后一个字节的地址
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).
我想知道我对以下问题的回答是否正确:
假设您有一个 "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).