C++ 什么是空间开销(指c+;+;数组时)?

C++ 什么是空间开销(指c+;+;数组时)?,c++,arrays,C++,Arrays,我正在读数组数据结构课上的一张幻灯片,但有些东西让我有些困惑 该示例位于一个名为x的数组中,定义如下: 一维数组x=[a,b,c,d] 位置(x[i])=开始+i 我真的不明白这一点,有人能解释一下吗?start是一个变量,它保存数组的地址。由于32位系统中的指针有4个字节,它将占用这4个字节。因此,如果您想要4字节数组,实际上需要8字节的内存:4字节用于数组,另外4字节用于指向该数组第一个元素的指针。如果这张幻灯片试图解释指针变量本身除了指向的内容之外还占用内存,那么它正是以我在某段时间内见

我正在读数组数据结构课上的一张幻灯片,但有些东西让我有些困惑

该示例位于一个名为x的数组中,定义如下:

一维数组x=[a,b,c,d] 位置(x[i])=开始+i


我真的不明白这一点,有人能解释一下吗?

start
是一个变量,它保存数组的地址。由于32位系统中的指针有4个字节,它将占用这4个字节。因此,如果您想要4字节数组,实际上需要8字节的内存:4字节用于数组,另外4字节用于指向该数组第一个元素的指针。

如果这张幻灯片试图解释指针变量本身除了指向的内容之外还占用内存,那么它正是以我在某段时间内见过的最迟钝的方式进行的。图形几乎是无用的,如果是这样的话,四个前导块提供了一个相当不幸的红鲱鱼。“因此,如果你想要4字节数组,你实际上需要8字节的内存”-除非你特别要求一个指向数组开头的指针变量。通常,您会编写[
const
]
charx[]={a,b,c,d}
大小x
将是四个字节。。。没有指针。幻灯片的前言中没有关于“开始”是一个单独的
char*
,但图表和4字节开销的讨论暗示了这一点。