C++ (&valName)[index] 方式访问数组

时间:2021-10-17 01:10:33

(&valName)[index] 是 C++ 中的数组访问方式之一,它表示访问一个由 bytes 数组的第四个元素开始的新数组。具体来说,这个表达式中的 &bytesbytes 数组的地址作为一个指针返回,然后在这个指针上进行偏移量的计算。因为 bytes 数组的类型是 char,所以这个偏移量是以字节为单位计算的。

例如,如果有一个 bytes 数组,长度为 10,它包含了一些二进制数据:

char bytes[] = {0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x11, 0x22};

那么,(&bytes)[4] 就表示一个新的 char 类型的数组,它包含了从 bytes 数组的第四个元素(即 0x78)开始的所有元素。因此,(&bytes)[4] 等价于:

char new_bytes[] = {0x78, 0x9a, 0xbc, 0xde, 0xf0, 0x11, 0x22};

需要注意的是,这种访问方式非常危险,容易造成数组越界,导致程序崩溃或产生未定义行为。因此,在实际编程中应该避免使用这种访问方式,而是使用更安全的方式访问数组元素,例如使用下标或指针运算符。