Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 什么';数组值是多少?_Arrays - Fatal编程技术网

Arrays 什么';数组值是多少?

Arrays 什么';数组值是多少?,arrays,Arrays,作业问题: 给定数组双x[3],x的“值”是多少?提供 可能值。给定上一点的v值,是什么 x[0]、x[1]和x[2]的地址 个人考虑: 在我看来,数组的值是它的项集合。例如 双x[3]={8,9,88} 但这个问题会让我认为“value”是指数组的机器起始地址(内存块的数组基址) 我的推理正确吗?你会给你什么样的答案?不,你的推理是不正确的。x的值只是一个地址-数组中第一个元素的地址。至于x[0]、x[1]和x[2]的地址分别是x+0(或简称x)、x+sizeof(double)和x+size

作业问题:

给定数组双x[3],x的“值”是多少?提供 可能值。给定上一点的v值,是什么 x[0]、x[1]和x[2]的地址

个人考虑:

在我看来,数组的值是它的项集合。例如

双x[3]={8,9,88}

但这个问题会让我认为“value”是指数组的机器起始地址(内存块的数组基址)


我的推理正确吗?你会给你什么样的答案?

不,你的推理是不正确的。
x
的值只是一个地址-数组中第一个元素的地址。至于
x[0]
x[1]
x[2]
的地址分别是
x+0
(或简称
x
)、
x+sizeof(double)
x+sizeof(double)*2


编辑:正如约阿希姆·艾萨克森指出的,事实上,x和指向double的裸指针之间存在一些区别。例如,
sizeof(x)
是一个数组的大小,是
x

中元素数的两倍。对于在某个内存地址包含三个双精度的数组,x本身是一个左值。就这样

现在有许多情况下,这样的值将转换为指向该数组的第一个元素的“指向double的指针”,但也有其他情况不会发生这种情况:当数组是sizeof、&(address)或_AlignOf运算符的操作数时


因此,如果有人说“x的值只是一个地址”,那就错了,因为sizeof(x)不是地址的大小,而是双精度的三倍

家庭作业问题:“请做你自己的家庭作业。我想在这里说,价值是指一个地址。这感觉像一个家庭作业问题。嗯
double x[3]
sizeof(x)
设置为24,而不是指针通常设置的4或8。这意味着x包含的值是24字节。@JoachimIsaksson我不知道你在说什么。我的意思是我从不使用
sizeof(x)
double*y;双x[3];std::cout@JoachimIsaksson我抓到你了对不起。您指的是第一句话,x只是一个指针。