C++ 结构体可以直接赋值
来源:互联网 发布:淘宝app图标双11 编辑:程序博客网 时间:2024/05/21 10:47
一直记得C语言中,结构体是不可以直接赋值的,需要逐一成员赋值或者用memcpy函数。
但是在C++中可以(无需重载=运算符),需要区分以下3种情况:
#include<iostream>
#include<string>using namespace std;
struct A
{
char a[10];
};
struct B
{
char *b;
};
struct C
{
string c;
};
int main()
{
A a1 ;
strcpy(a1.a ,"aaa");
A a2 ;
a2=a1; //深拷贝without defining the = operator
printf("%s, %s , %p , %p\n", a1.a , a2.a, a1.a , a2.a );
printf("\n-----------------------------------------\n");
B b1;
b1.b = new char[10];
strcpy(b1.b, "bbb");
B b2= b1;//浅拷贝
printf("%s, %s , %p , %p\n", b1.b , b2.b, b1.b , b2.b );
printf("\n-----------------------------------------\n");
C c1;
c1.c =string("ccc");
C c2=c1;//深拷贝
printf("%s, %s , %p , %p\n", c1.c.c_str() , c2.c.c_str(), c1.c.c_str() , c2.c.c_str() );
}
阅读全文
0 0
- c 结构体直接赋值
- 结构体可以用等号直接赋值
- C++ 结构体可以直接赋值
- 同类型的结构体变量可以元素直接赋值,而不是地址赋值
- C语言中结构体的直接赋值
- C语言结构体对象间直接赋值
- 结构体可直接赋值
- 层次遍历二叉树(相同类型的结构体可以直接赋值)
- 数组直接赋值给结构体
- C# 结构体直接赋值的问题
- 关于结构体成员的直接赋值
- 让结构直接赋值
- C中结构体是否能用=运算符直接赋值的问题
- 有关c语言结构体能否直接赋值的问题
- 结构体是可以相互赋值的
- C 结构体赋值传回
- c语言结构体赋值
- c语言 数组名&&结构体名 为什么不能用数组名给数组赋值,结构体却可以
- STL应用-——懒省事的小明
- 文章标题
- vscode: Visual Studio Code 常用快捷键
- 实现容器的底层技术
- Linux下切换python2和python3
- C++ 结构体可以直接赋值
- Python基础4
- AspectJ实现AOP(xml配置方式)
- DruidDataSource的参考配置
- Ubuntu下安装软件提示软件包 apport 需要重新安装解决方法
- python3安装
- 指针运算、空指针、函数指针、staic与const的区别
- Codeforces Round #446 (Div. 2) A. Greed
- CORBA 学习之实现例子