《指针的编程艺术(第二版)》一1.4 结构

    xiaoxiao2024-01-02  177

    本节书摘来自异步社区《指针的编程艺术(第二版)》一书中的第1章,第1.4节,作者 蔡明志,更多章节内容可以访问云栖社区“异步社区”公众号查看

    1.4 结构

    指针的编程艺术(第二版)谈完了数组后,接着讨论结构。结构是由多个不同数据类型所组成的一个集合体。我们以范例addressStruct来加以说明。

    范例addressStruct

    /* addressStruct.c */ #include <stdio.h> #include <stdlib.h> int main( ) {   /* 声明结构变量 */ struct employee   {       char id[7];   /* ID号码 */     char name[20];  /* 员工姓名 */     int salary;   /* 所得薪资 */   };   /* 定义结构变量,并设定其初值 */   struct employee manager = {"D12345", "Peter", 35000};      /* 输出结构变量的内存地址 */   printf("&manager= %x\n", &manager);   printf("manager.id= %x\n", manager.id);   printf("manager.name= %x\n", manager.name);   printf("&manager.salary= %x\n\n", &manager.salary);      /* 输出结构变量的值 */   printf("manager.id= %s\n", manager.id);   printf("manager.name= %s\n", manager.name);   printf("manager.salary= %d\n\n", manager.salary);   system("PAUSE");   return 0; }

    输出结果

    从输出结果得知结构变量名称与结构的第一个元素id的地址是相同的,都是12ff40,由于id占7字节,所以结构的第二个元素name的地址为12ff47,由于name字符串占20字节,所以结构第三个元素的地址为12ff5c。

    该范例如果以%p代替%x输出内存地址,则会补00,以满足32位。如输出&manager,则输出结果为0012FF40,你可以试试看。

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)