这段代码在技术上是否有效?
Is this piece of code technically valid?
int *b = arr, *e = arr + sz; // sz has a type of size_t
while (b < e)
{
// use *b
++b;
}
这是 C++ Primer 上的代码。我是 C++ 的新手,我可以知道如果 sz
非常大以至于 int 无法容纳,那么 b 和 e 是否应该声明为 size_t *
的类型?我在问答中找不到问题的答案。我对这部分很困惑。谢谢!也欢迎相关的link:-)
int
这里是指针指向的类型,在这里完全不相关。指针具有不依赖于指向类型的固定大小,并且该大小至少为 size_t
的大小(通常相同),因此没有危险。
int *b = arr, *e = arr + sz; // sz has a type of size_t while (b < e) { // use *b ++b; }
这是 C++ Primer 上的代码。我是 C++ 的新手,我可以知道如果 sz
非常大以至于 int 无法容纳,那么 b 和 e 是否应该声明为 size_t *
的类型?我在问答中找不到问题的答案。我对这部分很困惑。谢谢!也欢迎相关的link:-)
int
这里是指针指向的类型,在这里完全不相关。指针具有不依赖于指向类型的固定大小,并且该大小至少为 size_t
的大小(通常相同),因此没有危险。