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

C++ 在数组中查找给定索引的第一个字节和最后一个字节的地址,c++,arrays,memory-address,C++,Arrays,Memory Address,我想知道我对以下问题的回答是否正确: 假设有一个“int”数组声明为:intmyarray[20]。中的fi rst字节 该数组的地址为1010。myArray[13]的第一个和最后一个字节的地址是什么?int的大小是4个字节 这意味着此数组中的每个索引占用4个字节,对吗?如果是这种情况,myArray[13]将在myArray[0]之后开始4x13=52字节?这意味着第一个字节将位于地址1062,最后一个字节将位于地址1065?它们是 static_cast<char*>(&a

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

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

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

它们是

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

static_cast(&myarray[14])-1
没有


是的,你的计算是正确的。不过,请注意您的断言,即
sizeof(int)
4
,我不知道您是否指出了您平台的一个经验证的事实,或者您是否认为这是一个普遍常数(事实并非如此)。

如果我不清楚我在寻找什么,请原谅。我被问到这个问题是一个思考练习,我只是想确认我的答案是否正确。@trungnt:“是的,你的计算是正确的”不能解决这个问题吗?它解决了。谢谢你的帮助@楚朗特:没问题!
static_cast<char*>(&myarray[14]) - 1