了解C ++中的内存地址

时间:2015-08-06 20:13:40

标签: c++

为什么地址不变,因为我递增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); 

}

1 个答案:

答案 0 :(得分:5)

&str是指针的地址。您在迭代字符时更改指针,但您正在更改的指针仍位于同一位置。

修改:将您的cout << &str << endl;更改为cout << "pointer loc<" << &str << "> pointer value<" << (void*)str << ">" << endl;并查看其内容。