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:深拷贝的情况