重拾C语言——结构体和共用体
来源:互联网 发布:android源码里编译apk 编辑:程序博客网 时间:2024/06/14 17:44
结构体:不同类型变量的集合
数组:相同类型变量的集合
三种方式定义结构体:
1.struct weapon{
char name[20];
int atk;
int price;
};
struct weapon weapon_1;
2.1.struct weapon{
char name[20];
int atk;
int price;
}weapon_1;
3.struct {
char name[20];
int atk;
int price;
}weapon_1;
第三种定义方式无法再定义下一个结构体变量了。
结构体初始化:
struct weapon weapon_1={" xxx",xxxx,xx.....};对应的
引用使用.运算符
定义 struct weapon weapon_2[2]={{"m16",50,100},{"m4a1",100,200}};
引用 weapon_2[0].name
结构体数组初始化 struct xxx xx[2] = {{xx, xx, ...}, {yy, yy, ...}};
示例代码:
#include <stdio.h>
struct weapon{
char name[20];
int atk;
int price;
};
int main(){
int a=0;
float b=0.9;
struct weapon weapon_1={{"weapon_name",100.200};
printf("%s\n,%d\n",weapon_1.name,++weapon_1.price);
struct weapon *w;
w=&weapon_1;
printf("name=%s\n,name=%s\n",(*w).name,w->name);//w->name weapon_1.name
struct weapon weapon_2[2]={{"weapon_name",50.200},{"weapon_name2",100,200}};
printf("%s\n,%d\n",weapon_2[0].name,weapon_2[1].atk);
struct weapon *p;
p=weapon_2;
printf("%s\n",p->name);//p->name weapon_2[0].name
p++;//weapon_2+1 weapon_2[1]
return 0;
}
共用体:作用使几个不同类型的变量共享同一个内存地址
所占用的内存空间是成员中最长的一个成员字节数
union data{
int a ;
char b;
int c;
};
int main(){
union data data_1;
data_1.b='c';
data_1.a=10;//则只有最后一个赋值有效
return 0;
}
数组:相同类型变量的集合
struct长度=最后一个成员大小+最后一个成员偏移量+填充值;
结构体中的成员的偏移量需是自身长度的整数倍(不够就填充);
结构体总长度必须是占内存最大的成员的长度的整数倍。
三种方式定义结构体:
1.struct weapon{
char name[20];
int atk;
int price;
};
struct weapon weapon_1;
2.1.struct weapon{
char name[20];
int atk;
int price;
}weapon_1;
3.struct {
char name[20];
int atk;
int price;
}weapon_1;
第三种定义方式无法再定义下一个结构体变量了。
结构体初始化:
struct weapon weapon_1={" xxx",xxxx,xx.....};对应的
引用使用.运算符
定义 struct weapon weapon_2[2]={{"m16",50,100},{"m4a1",100,200}};
引用 weapon_2[0].name
结构体数组初始化 struct xxx xx[2] = {{xx, xx, ...}, {yy, yy, ...}};
示例代码:
#include <stdio.h>
struct weapon{
char name[20];
int atk;
int price;
};
int main(){
int a=0;
float b=0.9;
struct weapon weapon_1={{"weapon_name",100.200};
printf("%s\n,%d\n",weapon_1.name,++weapon_1.price);
struct weapon *w;
w=&weapon_1;
printf("name=%s\n,name=%s\n",(*w).name,w->name);//w->name weapon_1.name
struct weapon weapon_2[2]={{"weapon_name",50.200},{"weapon_name2",100,200}};
printf("%s\n,%d\n",weapon_2[0].name,weapon_2[1].atk);
struct weapon *p;
p=weapon_2;
printf("%s\n",p->name);//p->name weapon_2[0].name
p++;//weapon_2+1 weapon_2[1]
return 0;
}
共用体:作用使几个不同类型的变量共享同一个内存地址
所占用的内存空间是成员中最长的一个成员字节数
union data{
int a ;
char b;
int c;
};
int main(){
union data data_1;
data_1.b='c';
data_1.a=10;//则只有最后一个赋值有效
return 0;
}
0 0
- 重拾C语言——结构体和共用体
- C语言—共用体
- 结构体(内存对齐)和共用体—C语言
- C语言_结构体和共用体
- c语言中的结构体和共用体
- c语言的结构体,共用体和枚举
- C语言共用体和与结构体的区别
- C语言结构体和共用体(2)
- C语言学习------3.1 结构体和共用体
- C语言基础之结构体和共用体
- C语言结构体与共用体
- C语言结构体与共用体
- C语言结构体 共用体0815
- C语言 结构体与共用体
- C语言结构、共用体、Typedef
- 《c语言从入门到精通》看书笔记——第11章 结构体和共用体
- 【C语言】——union共用体
- C语言回顾(八、结构体,联合/共用体,枚举)——iOS开发基础
- list集合去重的一种方法
- 如何从京东商品里获取需要的信息
- C#实现知乎登录、点赞、关注、退出、评论(一)登录
- ubuntu设置共享
- quick-cocos2dx中 lua 和oc的通信
- 重拾C语言——结构体和共用体
- Android中通过接口调用服务里的方法
- Android Studio如何更改JDK和SDK的路径?
- linux下SPI驱动
- Android游戏开发中备忘录模式的应用
- 年后的第一个客户,花一个下午搞定
- Android开发中引入第三方jar包的方法
- 序列化及反序列化
- eval