指针初始化后还能再赋值吗
时间: 2023-08-01 19:15:44 浏览: 171
是的,指针在初始化之后仍然可以被赋予新的值。
当我们声明一个指针变量时,可以选择给它一个初始值。这个初始值可以是另一个指针变量的地址,也可以是某个变量或者内存块的地址。例如:
```
int x = 5;
int* ptr = &x; // 初始化指针 ptr,将其指向变量 x 的地址
```
在这个例子中,指针变量 `ptr` 被初始化为指向变量 `x` 的地址。但是,一旦指针被初始化,我们仍然可以通过赋值操作将其指向其他地址。例如:
```
int y = 10;
ptr = &y; // 将指针 ptr 的值修改为变量 y 的地址
```
现在,指针 `ptr` 指向了变量 `y` 的地址。
需要注意的是,指针的赋值操作只改变了指针本身的值,并没有改变指针所指向的内存地址中的值。如果我们希望修改指针所指向的内存中的值,可以使用间接寻址运算符 `*`。例如:
```
*ptr = 15; // 修改指针所指向的内存中的值为 15
```
综上所述,指针在初始化之后仍然可以通过赋值操作来改变其所指向的地址,但要注意对指针所指向内存中的值的修改需要使用间接寻址运算符 `*`。
阅读全文