我编写了以下程序来了解将整数值添加到指针值。在我的例子中,指针指向整数。我知道如果 p 是一个指向整数的指针,那么 p+2 是存储“前面两个整数”的整数的地址(或 2*4 字节 = 8 字节)。下面的程序按我对整数数组的预期工作,但对于 char 数组,它只打印空行。有人可以向我解释为什么吗?
#include <iostream>
int main() {
int* v = new int[10];
std::cout << "addresses of ints:" << std::endl;
// works as expected
for (size_t i = 0; i < 10; i++) {
std::cout << v+i << std::endl;
}
char* u = new char[10];
std::cout << "addresses of chars:" << std::endl;
// prints a bunch of empty lines
for (size_t i = 0; i < 10; i++) {
std::cout << u+i << std::endl;
}
return 0;
}