指针p指向结构体指针a,指针b也指向结构体指针a,,指针p修改a里的内容,b指向的数据会跟着修改么
时间: 2024-10-24 19:09:52 浏览: 21
详解C++中的指针结构体数组以及指向结构体变量的指针
5星 · 资源好评率100%
当你有两个指针`p`和`b`都指向同一个结构体指针`a`时,这意味着`p`和`b`实际上共享了相同的内存地址,即它们都指向同一块内存空间。在这种情况下,如果`p`对`a`内的数据进行了修改,`b`同样能看到这些改变,因为它们指向的是同一个结构体实例。
例如,如果`a`是一个包含某种数据类型的成员的结构体,比如`struct MyStruct`,并且`p`和`b`都是指向该类型指针的变量,那么:
```c
struct MyStruct {
int value;
};
struct MyStruct *a, *b;
a = &myStruct; // myStruct是某个已定义的MyStruct实例
b = a; // b现在也指向myStruct
// 如果通过p修改a的内容:
p = a;
*p->value = 100; // 修改a中的value
// 这时候,通过b访问也是同样的效果:
b->value = 200; // b指向的数据也会跟着修改,现在value为100和200
```
所以,简而言之,`p`修改`a`的数据,`b`指向的数据也会随着变化,除非`b`后来被重新赋值指向其他内存位置。
阅读全文