结构体
来源:互联网 发布:js中的map 编辑:程序博客网 时间:2024/05/28 05:13
/* 结构体内的内部变量是不能有初始值,但C++的结构可以 */struct MyStructX{//int num = 10;C:不可以,C++可以。int num;char str[10];};结构体变量可以相互赋值如:#include<stdio.h>#include<stdlib.h>/* 结构体内的内部变量是不能有初始值,但C++的结构可以 */struct MyStructX{//int num = 10;C:不可以,C++可以。int num;char str[10];};struct MyStruct{struct MyStructX my1;int num;char str[10];};int main(){struct MyStruct my2 = { { 10, "calc" }, 20, "mspaint" };struct MyStruct my3 = my2;//这样给结构体赋值是可行的。printf("%d,%s,%d,%s\n", my2.my1.num, my2.my1.str, my2.num, my2.str);printf("%d,%s,%d,%s\n", my3.my1.num, my3.my1.str, my3.num, my3.str);system("pause");}深浅拷贝:#include<stdio.h>#include<stdlib.h>//对于数据来说,深浅拷贝一样。//对于指针,浅拷贝是拷贝地址,深拷贝是拷贝内容。struct str{char *p;int num;};void main(){struct str mystr1;mystr1.num = 30;mystr1.p = malloc(30);strcpy(mystr1.p,"hello world");//struct str mystr2 = mystr1;//这个属于浅拷贝。//free(mystr1.p);//这个地址释放,二个结构都挂掉。struct str mystr2 = mystr1;mystr2.p = malloc(30);strcpy(mystr2.p, mystr1.p);//深拷贝,即mystr1.p与mystr2.p没有关系。free(mystr1.p);//这个地址释放,只会对 mystr1.p 有效。不影响mystr2.pprintf("str1 = %s \nstr2 = %s\n", mystr1.p, mystr2.p);system("pause");}
0 0
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体
- 结构体,,,,
- 结构体
- 结构体
- Universal-Image-Loader(Android开源项目)
- SQL学习总结(1)
- Java泛型详解
- JS笔记
- 中断、陷阱、软中断之间的异同
- 结构体
- MySQL 字符集相关命令
- Android中使用Handler引发的内存泄露
- OpenCV 下载驿站(百度云盘下载,同步更新)
- RS232电平TTL电平COMS电平
- export导出数据
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误,未找到或无法访问服务器。错误代码:40
- Android res中各种XML的作用及其解释
- android webView相关知识