【发布时间】:2020-04-30 02:39:11
【问题描述】:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int arr[] = {1, 2, 3, 4, 5, 6};
int size = *(&arr + 1) - arr;
return 0;
}
int size = *(&arr + 1) - arr; 如何准确找到数组的大小?我已经阅读了 geeksforgeeks 的解释,但仍然有点困惑。我想如果你取消引用 (&arr + 1) 那么它会给你一个不存在的值,因为你跳过了 6 个整数,这在那个内存地址中可能是随机的?而且,如果您能够取消引用 (&arr + 1) 到 int 类型,那么您如何能够从 arr 中减去该值?
【问题讨论】:
-
这将 100% 帮助:stackoverflow.com/questions/2528318/…
-
还有另一个关于此的问题,但该网站没有正确搜索 &x + 1 等。;(
标签: c++ arrays pointers pointer-arithmetic