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 *
的类型吗?我没有找到关于Q&amp; A的问题的答案。我很困惑这一部分。谢谢!也欢迎相关链接: - )
答案 0 :(得分:3)
int
这里是指向的类型指针,它在这里完全无关紧要。指针具有固定的大小,不依赖于尖头类型,并且该大小至少为size_t
的大小(通常相同),因此没有危险。