从零开始学习嵌入式----结构体struct和union习题回顾

avatar
作者
猴君
阅读量:4

 一、通过结构体和自定义函数实现成绩从大到小的排序,要求在主函数内定义结构体数组。

#include <stdio.h> //定义一个结构体类型 typedef struct Student {     int age;     char name[32];     float score; } STU; //定义一个函数实现成绩从小到大的排序 void fun(STU *p, int num) {     //通过冒泡排序实现成绩从大到小的排序     for (int i = 0; i < num - 1; i++)     {         for (int j = 0; j < num - 1 - i; j++)         {             if (p[j].score > p[j + 1].score)             {                 STU t = p[j];//定义一个临时结构体变量实现参数的交换                 p[j] = p[j + 1];                 p[j + 1] = t;             }         }     } } int main(int argc, char const *argv[]) {     //在主函数内定义结构体数组     STU stu[3] = {{1, "zhang", 23.5}, {2, "wang", 45.7}, {76, "li", 87.6}};     STU *sp = stu;//定义一个结构体指针     fun(sp, 3);//从小到大排序     //打印输出数据     for (int i = 0; i < 3; i++)     {         printf("%d %s %.2f\n", stu[i].age, stu[i].name, stu[i].score);     }     return 0; } 

二、通过union联合体判断计算机是大端存储还是小端存储。

 

#include <stdio.h> union demo {   int a;   char b; };  int main(int argc, char const *argv[]) {   union demo d1;   d1.a=0x12345678;   printf("%#x\n",d1.b);//0x78   return 0; } 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!