改变了指针的值后,指针原本指向的变量会改变吗
时间: 2023-11-04 19:47:09 浏览: 662
改变了指针的值后,指针原本指向的变量不会直接改变。指针存储的是一个内存地址,它指向某个变量或者内存块。
当我们改变指针的值,实际上是修改了指针变量存储的内存地址。这意味着指针不再指向原来的变量或内存块,而是指向了新的地址。
修改了指针的值并不会影响原来所指向的变量的值。如果我们希望修改原来所指向的变量,需要通过解引用操作符 `*` 来访问和修改指针所指向地址中的内容。
例如,考虑以下代码:
```cpp
int x = 5;
int y = 10;
int* ptr = &x; // 指针 ptr 指向变量 x
*ptr = 15; // 修改指针所指向的内存中的值为 15
ptr = &y; // 修改指针的值,使其指向变量 y
```
在这个例子中,通过解引用操作符 `*`,我们可以修改指针 `ptr` 所指向的内存中的值为 15。然后,我们修改了指针 `ptr` 的值,使其指向变量 `y` 的地址。
综上所述,改变了指针的值后,并不会直接改变指针原本所指向的变量。如果需要修改原来所指向的变量,需要通过解引用操作符来操作指针所指向地址中的内容。
阅读全文