C++的数组

发布于 2024-04-09  29 次阅读


这就是我们C++的数组啊,你们有这样的数组吗,真是数数又组组啊

int v = sizeof(aaaa) / sizeof((aaaa[0]));

要这样来计算数组元素有多少sizeog是得到这个玩意的内存位数

222

ptr 是一个指向 example 数组第一个元素的指针。

(char*)ptr 将这个指针从 int*(整数指针)转换为 char*(字符指针)。因为 intchar 的大小不同(通常 int 是4字节,char 是1字节),所以这一步是必要的以便于进行字节级别的指针运算。

+ 8 是向前移动8个字节。由于数组 example 是整数数组,并且假定 int 类型占4个字节,移动8个字节实际上会跳过两个 int 类型的值(每个 int 4字节)。

(int*) 再次将指针转换回 int*,因为我们需要修改整数值。

最后,*(int*)((char*)ptr + 8) = 6; 这部分代码将数组的第三个元素(example[2])设为 6。这是因为数组的索引从0开始,所以 ptr + 8 字节实际上指向 example[2]

因此,这行代码是一种不太常规的修改数组第三个元素值的方式。在不使用数组下标的情况下直接通过指针运算达到了 example[2] = 6; 的效果。

QQ:2219349024
最后更新于 2024-04-09