当前位置: 首页 > news >正文

如何建立一个网站英语作文旅行WordPress主题

如何建立一个网站英语作文,旅行WordPress主题,网站建设文化案例,免费网络推广100种方法​ ✨✨ 欢迎大家来到贝蒂大讲堂✨✨ #x1f388;#x1f388;养成好习惯#xff0c;先赞后看哦~#x1f388;#x1f388; 所属专栏#xff1a;C语言学习 贝蒂的主页#xff1a;Betty‘s blog 1. 联合体的定义 联合体又叫共用体#xff0c;它是一种特殊的数据类型养成好习惯先赞后看哦~ 所属专栏C语言学习 贝蒂的主页Betty‘s blog 1. 联合体的定义 联合体又叫共用体它是一种特殊的数据类型允许您在相同的内存位置存储不同的数据类型。给联合体其中⼀个成员赋值其他成员的值也跟着变化。 2. 联合体基础 2.1 联合体声明 联合体的结构类似于结构体由关键字union和多个成员变量组成。格式如下 union [union tag] { member definition; member definition; … member definition; } [one or more union variables]; union tag 是你自己定义的每个 member definition 是标准的变量定义比如 int i; 或者 float f; 或者其他有效的变量定义。在共用体定义的末尾最后一个分号之前您可以指定一个或多个共用体变量这一点和结构体类似。 (1) 普通联合体 union data {int n;char ch; };(2) 嵌套联合体 联合体也是可以嵌套使用的。 union Un1 {char c[5];int i; }; union Un2{int n;union Un1 u1; };(3) 匿名联合体 匿名联合体是一种特殊联合体省略了联合体名称这种联合体只能在其定义的代码块内使用一次。例如如果你在一个函数内部定义了一个匿名联合体则该联合体只能在该函数内部使用。当代码块执行完毕后该联合体将不再可见。 union {int n;char ch; };(4) typedef联合体 我们也可以使用typedef简化联合体。 typedef union Un1 {char c[5];int i; }Un1;//之后可以使用Un1代替union Un12.2 联合体变量的创建与初始化 联合体变量创建除了在创建联合体时候定义也可以在主函数内定义并且同时能够对齐初始化。 用例如下 union Un {char c;int i; }; int main() {//联合体的初始化union Un u1 { a,0 };//错误union Un u2 { 0 };//正确return 0; }联合体的初始化只能使用一个值因为联合体的所有成员共享同一块内存空间。 2.3 访问联合体 为了访问联合体的成员我们使用成员访问运算符.。成员访问运算符是联合体变量名称和我们要访问的共用体成员之间的一个句号。下面是一个实例: #includestring.h typedef union Un1 {char c[10];int i; }Un1;int main() {Un1 u { 0 };printf(%d , u.i);printf(%s , strcpy(u.c, abcdef));return 0; }输出结果: 3. 联合体的内存存储 3.1 联合体的大小 联合体的大小是其成员变量大小之和还是和结构体一样遵循某种特殊规律呢我们通过以下代码实验一下。 union Un {char c[5];int i; }; int main() {union Un u2 { 0 };printf(大小为%zd, sizeof(union Un));return 0; }输出结果: 通过验证我们知晓联合体的大小并不是其成员变量大小之和也是遵循某种特定的规律。 那么这种规律到底是什么呢其实很简单 联合的⼤⼩⾄少是最⼤成员的⼤⼩。当最⼤成员⼤⼩不是最⼤对⻬数的整数倍的时候就要对⻬到最⼤对⻬数的整数倍。对⻬数编译器默认的⼀个对⻬数与该成员变量⼤⼩的较⼩值。(VS 中默认的值为 8 Linux中gcc没有默认对齐数对⻬数就是成员⾃⾝的⼤⼩) 3.2 存储形式 知道了联合体的大小我们也就会很容易知道它的内存存储方式了。下面有具体四个样例 (1) 样例一 #include stdio.h union Un {char c;int i; }; int main() {//联合变量的定义union Un un { 0 };// 下⾯输出的结果是⼀样的吗printf(%p\n, (un.i));printf(%p\n, (un.c));printf(%p\n, un);return 0; }输出结果: 通过这次实验我们联合体从起始位置开始共用的 (2) 样例二 #include stdio.h //联合类型的声明 union Un {char c;int i; }; int main() {//联合变量的定义union Un un { 0 };un.i 0x11223344;un.c 0x55;printf(%x\n, un.i);return 0; }输出结果 示意图 蓝色为共用部分绿色为非共用部分VS编译器为小端存储 (3) 样例三 #include stdio.h union Un1 {char c;int i; }; int main() {// 下⾯输出的结果是什么printf(大小为%d\n, sizeof(union Un1));return 0; }输出结果 示意图 解析 c的大小为一个字节i的大小为四个字节他们共用一个字节。最大对齐数为4结构体大小此时刚好为4是最大对齐数的整数倍。 (4) 样例四 #include stdio.h union Un2 {short c[7];int i; }; int main() {// 下⾯输出的结果是什么printf(大小为%d\n, sizeof(union Un2));return 0; }输出结果 示意图 解析 short大小为2c中有7个大小为14i大小为4共用四个字节。最大对齐数为4联合体大小为最大对齐数的整数倍为16。 4. 利用联合体判断大小端 我们早在学习数据在内存中如何存储时就已经了解过一种判断大小端的方法今天就为大家介绍另一种方法——通过联合体判断大小端 还是这幅图我们要判断大小端就需要判断第一位存储到底是01还是00。 那如何取出第一位呢除了通过指针我们也能利用联合体共用同一块内存这一性质判断。 代码如下 int check_sys() {union{int i;char c;}un;un.i 1;return un.c; //返回1是⼩端返回0是⼤端 } int main() {int ret check_sys();if (ret 1){printf(⼩端\n);}else{printf(⼤端\n);}return 0; }5. 联合体的应用 通过联合体我们可以节省一部分内存。比如我们要搞⼀个活动要上线⼀个礼品兑换单礼品兑换单中有三种商品图书、杯⼦、衬衫。每⼀种商品都有库存量、价格、商品类型和商品类型相关的其他信息。 其他信息 图书书名、作者、⻚数 杯⼦设计 衬衫设计、可选颜⾊、可选尺⼨ 我第一想法是通过一个结构体定义 struct gift_list {//公共属性int stock_number; //库存量double price; //定价int item_type; //商品类型//特殊属性char title[20]; //书名char author[20]; //作者int num_pages; //⻚数char design[30]; //设计int colors; //颜⾊int sizes; //尺⼨ };上述的结构其实设计的很简单⽤起来也⽅便但是结构的设计中包含了所有礼品的各种属性这样使得结构体的⼤⼩就会偏⼤⽐较浪费内存。但是对于礼品兑换单中的商品来说只有部分属性信息是常⽤的。⽐如商品是图书就不需要design、colors、sizes。所以我们就可以把公共属性单独写出来剩余属于各种商品本⾝的属性使⽤联合体起来这样就可以介绍所需的内存空间⼀定程度上节省了内存。 通过联合体定义 struct gift_list {int stock_number; //库存量double price; //定价int item_type; //商品类型union {struct{char title[20]; //书名char author[20]; //作者int num_pages; //⻚数}book;struct{char design[30]; //设计}mug;struct{char design[30]; //设计int colors; //颜⾊int sizes; //尺⼨}shirt;}item; };6. 枚举的定义 在 C 语言中枚举enum是一种用户定义的数据类型用于定义一个由标识符列表组成的整数常量集合。枚举类型通过关键字 enum来定义。 在实际应用中我们经常把能够且便于一一列举的类型用枚举来表示。就比如一周的星期、一年的月份……其基本语法如下 enum 枚举类型名 { 标识符1, 标识符2, … }; 枚举类型名受自己定义如weekyear…标识符就是其中的枚举常量如MonTuesWed…每个枚举常量可以用一个标识符来表示也可以为它们指定一个整数值如果没有指定那么默认从 0 开始递增。 7. 枚举基础 7.1 枚举的声明 (1) 普通枚举 接下来我们举个例子比如一星期有 7 天如果不用枚举我们需要使用 #define 来为每个整数定义一个别名 #define MON 1 #define TUE 2 #define WED 3 #define THU 4 #define FRI 5 #define SAT 6 #define SUN 7这个看起来代码量就比较多接下来我们看看使用枚举的方式 enum DAY {MON1, //指定从1开始否则默认从0开始TUE,WED,THU, FRI, SAT, SUN };(2) 匿名枚举 和匿名结构体与匿名联合体类似枚举也有匿名类型。 enum {APPLE,BANANA,ORANGE };(3) typedef枚举 我们也可以使用typedef简化枚举。 typedef enum DAY {MON 1, //指定从1开始否则默认从0开始TUE,WED,THU,FRI,SAT,SUN }DAY;7.2 打印枚举常量 typedef enum DAY {MON, TUE,WED,THU,FRI,SAT,SUN }DAY; int main() {for (int i MON; i SUN; i){printf(%d , i);}return 0; }输出结果 这也间接证明枚举是一个常量默认从0开始。 7.3 枚举变量的创建与初始化 我们可以利用定义的枚举常量对枚举变量进行赋值。 typedef enum DAY {MON, TUE,WED,THU,FRI,SAT,SUN }DAY; int main() {DAY a MON;//最好用枚举常量赋值return 0; }那是否可以拿整数给枚举变量赋值呢在C语⾔中是可以的但是在C是不⾏的C的类型检查⽐较严格。 8. 枚举常量的大小 枚举常量的大小同 int 的大小一样都是四个字节。 我们可以通过以下代码来实验 #include stdio.h enum color1 {RED,GREEN,BLUE };enum color2 {GRAY 0x112233445566,YELLOW,PURPLE };int main() {printf(enum color1: %d\n, sizeof(enum color1));printf(enum color2: %d\n, sizeof(enum color2));return 0; } 输出结果: 9. 枚举的优点 乍一看我们可能会感觉枚举有点画蛇添足的感觉那使用枚举到底有哪些优点呢 优点 增加代码的可读性和可维护性和#define定义的标识符⽐较枚举有类型检查更加严谨。便于调试预处理阶段会删除 #define 定义的符号使⽤⽅便⼀次可以定义多个常量枚举常量是遵循作⽤域规则的枚举声明在函数内只能在函数内使⽤ 10. 枚举的应用 枚举的使用常与switch语句联系起来。 #include stdio.h int main() {enum color { red 1, green, blue };enum color favorite_color;/* 用户输入数字来选择颜色 */printf(请输入你喜欢的颜色: (1. red, 2. green, 3. blue): \n);scanf(%d, favorite_color);/* 输出结果 */switch (favorite_color){case red:printf(你喜欢的颜色是红色\n);break;case green:printf(你喜欢的颜色是绿色\n);break;case blue:printf(你喜欢的颜色是蓝色\n);break;default:printf(你没有选择你喜欢的颜色\n);}return 0; }
http://www.pierceye.com/news/462743/

相关文章:

  • 商城展示网站建设我劝大家不要学android
  • 官网的建站过程云南网站建设营销
  • 那个网站上有打码的任务做台州做网站的公司
  • 做公司网站 需要注意什么汕尾市住房和城建设局网站
  • 建立音乐网站网络媒体设计是什么
  • html网站怎么进入后台网站建设完成之后要索取哪些
  • 做炭化料的网站国外可以做非法网站吗
  • 厦门 网站建设 网站开发 未来网络做百科专用参考链接的网站
  • 手机网站友情链接怎么做网站轮播图
  • 网站做支付宝花呗分期设计师联盟网是谁创建的
  • 辽宁手机版建站系统开发高平市规建设局网站
  • 免费电子商务网站建设个人网站心得
  • 2003 iis网站发布网站c2g的代表性电商平台
  • 用asp做网站的可行性分析哪个网站做美食视频
  • 瓷砖网站模板建设网站虚拟主机
  • 陇西哪里能学做网站百度识图网页版在线使用
  • 如果自己弄网站书签制作 小学生 一等奖
  • 连江网站建设wordpress页面文章列表
  • 国外jquery特效网站网站建设的英语
  • 建立网站最好的模板夜蝶直播app下载安装
  • 重庆学校网站建设wordpress 模版安装
  • 公司要招个做网站的人商标设计网站猪八戒
  • 古建设工程造价管理协会网站小程序引流推广平台
  • 网站域名缴费十年外贸建设企业网站服务
  • 游戏网站外链建设网站开发项目的需求分析
  • 确定网站的主题与风格东营市建设项目工伤保险是哪个网站
  • 如何做一张网站平面效果图装宽带需要多少钱
  • 什么网站能让小孩做算术题厦门住房和城乡建设局网站
  • 网站上线过程建设网站什么费用
  • 企业网站域名在哪申请成都广告公司