贺老师教学链接 C语言及程序设计进阶 本课讲解

联合体的概念

#include <stdio.h>
union un
{int i;short int si[2];char c[4];
};
int main()
{union un x;x.c[0]='A';x.c[1]='B';x.c[2]='C';x.c[3]='D';printf("%c, %c, %c, %c\n", x.c[0], x.c[1], x.c[2], x.c[3]);printf("%d, %d\n", x.si[0], x.si[1]);printf("%d\n", x.i);return 0;
}

应用:IP的表示

#include <stdio.h>
union IP
{unsigned char part[4];unsigned int address;
};void copyIp(union IP *a, int n[])
{int i;for(i=0; i<4; i++)a->part[i]=n[i];return;
}int main()
{union IP ip1, ip2;int nums[4]= {202,194,116,97};copyIp(&ip1, nums);printf("ip1: %d.%d.%d.%d\n", ip1.part[0], ip1.part[1], ip1.part[2], ip1.part[3]);printf("ip1: %d\n", ip1.address);ip2.address=234567;printf("ip2: %d.%d.%d.%d\n", ip2.part[0], ip2.part[1], ip2.part[2], ip2.part[3]);printf("ip2: %d\n", ip2.address);if(ip1.address == ip2.address)printf("same ip.\n");elseprintf("not same ip.\n");return 0;
}

C语言及程序设计进阶例程-30 联合体及其应用相关推荐

  1. C语言及程序设计进阶例程-32 位运算及其应用

    贺老师教学链接 C语言及程序设计进阶 本课讲解 位运算 #include <stdio.h> int main() {unsigned short int n = 3;int i;for( ...

  2. C语言及程序设计进阶例程-12 结构体成员的引用

    贺老师教学链接  C语言及程序设计进阶 本课讲解 结构体作函数参数 #include <stdio.h> struct Student {int num;char name[20];cha ...

  3. c语言程序设计指针进阶,C语言及程序设计进阶例程-15 指向结构体的指针

    贺老师教学链接  C语言及程序设计进阶 本课讲解 指向结构体变量的指针的应用 #include #include struct Student { int num; char name[12]; ch ...

  4. C语言及程序设计进阶例程-17 认识链表

    贺老师教学链接  C语言及程序设计进阶 本课讲解 例 建立并输出一个简单链表 #include <stdio.h> struct Student {int num;float score; ...

  5. 《C语言及程序设计进阶》网络课程主页

    在CSDN学院开出的网络系列课程<C语言及程序设计初步>已经完成. 系列中的第二季<C语言及程序设计提高>的所有资源建设已经全部完成. 这是第三季<C语言及程序设计进阶& ...

  6. 进阶 c程序设计语言,C程序设计进阶

    你将学到什么 Computer Display Standard C Programming C++ 课程概况 如果说学习过<计算导论与C语言基础>,你已经迈入了C语言的殿堂,那么< ...

  7. C语言及程序设计初步例程-33 三种循环语句

    贺老师教学链接  C语言及程序设计初步 本课讲解 问题:求1+2+3+-+100 用while语句实现的程序 #include <stdio.h> int main() {int i=1, ...

  8. C语言及程序设计初步例程-37 循环嵌套

    贺老师教学链接  C语言及程序设计初步 本课讲解 求  #include <stdio.h> int main() {int sum=0, i=1, t;while (i<=6){t ...

  9. 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用

    贺老师教学链接  C语言及程序设计提高 本课讲解 输入输出二维数组元素 #include int main() { int s[3][5], i, j; printf("Input 3*5 ...

最新文章

  1. docker-registry的定制和性能分析
  2. 七、Linux脚本进阶和进程管理
  3. Java_io体系之CharArrayReader、CharArrayWriter简介、走进源码及示例——13
  4. C语言头文件 “ 细节 ”
  5. 命名管道实现进程的信息传递【mkfifo函数、open函数】
  6. linux CentOS7 erlang安装
  7. ES5(二)——替换this 之call()、apply()和bind()
  8. javascript学习随笔(编写浏览器脚本 Navigator Scripting )
  9. Android新手之旅(12) URL解码
  10. 通过CSS,Jquery实现DIV的各种动作(包括漂移,未测试IE6)
  11. InnoDB 存储引擎(8)——InnoDB 存储引擎文件
  12. 车流量计数、不同车型统计算法
  13. 877. 扩展欧几里得算法
  14. 绘画教程:如何轻松画出皮肤的挤压感
  15. 手机学习利器Qpython
  16. uniapp安卓端禁止截屏允许截屏
  17. 心理学转到计算机的女科学家,从局外人到局中人心理学研究理念演变.doc
  18. 《Web性能测试实战》性能测试用例模板
  19. 使用Bert完成实体之间关系抽取
  20. 【转】VMWare+WinDbg搭建(驱动)调试环境

热门文章

  1. 又来?软件测试之接口自动化面试题汇总
  2. 帮你排雷Jmeter分布式性能测试那些坑~轻轻松松去实战
  3. matlab warp,matlab warpimg
  4. (三)Linux 安装
  5. MATLAB 画图 字符串连接表示 plot参数
  6. java notifyall 唤醒顺序_Java线程中的notifyAll唤醒操作(推荐)
  7. Python基础知识 D9
  8. orb-slam a versatile and accurate monocular slam system
  9. 机器学习技术在植物病害识别中的对比分析(迁移学习做了基础实验)
  10. 原始图像扩展_Resize Sense for Mac(图像处理软件)