您的位置:首页 > 其它

统一结构体类型变量相互赋值

2012-05-05 15:07 176 查看
如果包含指针,赋值只能实现浅拷贝。被赋值的结构体变量的指针成员与原结构体变量的指针成员指向一个地址。

C/C++ code
#include <stdio.h>

struct s
{
int i;
char c;
void* p;
};

int main()
{
struct s s1, s2;
char * s = "rabbit is cute";
s1.i = 345;
s1.c = 'y';
s1.p = (void*)s;

s2 = s1;

printf("s2: %d, %c, %s\n", s2.i, s2.c, s2.p);
printf("s1 ptr: %d; s2 ptr: %d\n", s1.p, s2.p);

return 0;
}


输出结果是s1.p的值和s2.p的值是一样的。可见字符串没有被拷贝,两个指针指向同一个字符串。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: