结构体对齐,结构体深拷贝和浅拷贝
生活随笔
收集整理的這篇文章主要介紹了
结构体对齐,结构体深拷贝和浅拷贝
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
struct定義
#include<stdio.h>
#include<stdlib.h>
?
//最寬基本成員,char,int,double,結構體數組都不是最寬基本成員
//結構體大小必須可以整除最寬基本成員,是最寬基本成員的整數倍
//結構體成員地址減去結構體首地址,就是偏移量,偏移量必須可以整除成員的基本類型
structinfo{
???charc;
???doublesh;
???charch[9];
};
?
structinfo1
{
???shortsh1;
???intsh;
???charch[19];
};
?
voidmain(){
???structinfo1info11 = { 10, 200,"123456" };
???printf("%p\n",&info11);
???printf("%p\n",&info11.sh1);
???printf("%p\n",&info11.sh);
???printf("%p\n", &info11.ch);
?
???getchar();
}
2.結構體深拷貝,淺拷貝
淺拷貝:共享一塊內存,一個改了,另外一個也將改變
深拷貝:拷貝內存的內容
測試深拷貝和淺拷貝的例子如下:
A:首先,測試淺拷貝的情況
淺拷貝是通過結構體屬性分別賦值來實現的。
這里的hello變成了kello了,說明這里通過結構體的淺拷貝修改了原來結構體的內容
B:深拷貝的情況
總結
以上是生活随笔為你收集整理的结构体对齐,结构体深拷贝和浅拷贝的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sprintf,求字符串长度
- 下一篇: 宝马m3旅行版有哪些新配置,带你提前了解