为什么地址不变,因为我递增str?我认为当我执行指针运算时,指针指向不同的内存地址。因此,内存地址不应该改变吗?
#include <iostream>
using namespace std;
void reverse(char* str){
cout << &str << endl;
while(*str != '\0'){
cout << &str << endl;
str++;
}
}
int main(){
char str[] = "hello";
reverse(str);
}
答案 0 :(得分:5)
&str
是指针的地址。您在迭代字符时更改指针,但您正在更改的指针仍位于同一位置。
修改:将您的cout << &str << endl;
更改为cout << "pointer loc<" << &str << "> pointer value<" << (void*)str << ">" << endl;
并查看其内容。