统一结构体类型变量相互赋值
2012-05-05 15:07
176 查看
如果包含指针,赋值只能实现浅拷贝。被赋值的结构体变量的指针成员与原结构体变量的指针成员指向一个地址。
C/C++ code
输出结果是s1.p的值和s2.p的值是一样的。可见字符串没有被拷贝,两个指针指向同一个字符串。
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的值是一样的。可见字符串没有被拷贝,两个指针指向同一个字符串。
相关文章推荐
- C语言中两个相同类型的结构体变量之间是可以相互直接赋值的
- 不同结构体类型变量之间的赋值
- 在GPU核函数中,为什么数值型变量可以和数组型变量相互赋值, CPU中不可以
- C++不同类型数值变量之间相互赋值的规则
- SQL不是同一类型的变量赋值最好转换成统一类型,否则引起莫名错误
- openoffice跨平台编程中的代码统一问题(临时变量赋值给引用问题)
- 结构类型变量相互赋值
- sql server和mysql变量赋值的区别 以及 MySql Declare(转)
- 回调函数的返回值给全局变量的赋值问题
- python变量赋值不可更改,形参可赋新值
- Flex :HTTPService处理XML文件的两种方法, Asp生成Xml的方法,以及Flex定义变量、赋值的运用。。。。
- Java变量类型间的相互转换
- 存储过程中将查询语句结果赋值给变量
- 一、如何使用变量给数据源控件参数赋值
- 将字典转换成变量, 字符串与列表相互转换
- shell变量赋值和引用
- C++构造函数对类成员变量初始化,使用初始化列表和构造函数内部直接赋值 的区别
- 存储过程中SELECT与SET对变量赋值
- es6 变量的解构赋值
- Shell 变量赋值的小问题