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

C语言结构体小栗子

若想实现以下功能

int main() {
//    printf("Hello, World!\n");
    char titile[10][100];
    char author[10][100];
    strcpy(titile[0],"shuihu");
    strcpy(author[0],"luo");
    strcpy(titile[1],"sanguo");
    strcpy(author[1],"san");
    int i;
    for ( i = 0; i <2 ; ++i) {
        printf("%s %s\n",titile[i],author[i]);
    }

    return 0;
}

使用结构体

struct book{
    char title[100];
    char author[100];
};

int main(void ) {
//    printf("Hello, World!\n");
    struct book books[10];
    strcpy(books[0].title, "shuihu");
    strcpy(books[0].author, "luo");
    strcpy(books[1].title, "sanguo");
    strcpy(books[1].author, "san");
    int i;
    for (i = 0; i < 2; ++i) {
        printf("%s %s\n", books[i].title, books[i].author);
    }
    

    return 0;
}

 可以把struct book当场一种结构体

typedef int ABC;//ABC是Int的别名

ABC s=12;//s=12

typedef相当于是给变量类型取别名

 

 一般的结构体可以这样写

 简单的结构体加指针

 

 


typedef int ABC;//ABC是Int的别名
     struct book{
    char title[100];
    char author[100];
} ;//这样子写不能同时申明变量
typedef struct book book;
int main(void ) {
//    printf("Hello, World!\n");
    struct book books[10];
    book *b=&books[0];
//    book books[10];//与上一句含义相同
    ABC s=123;
    strcpy(books[0].title, "shuihu");
    strcpy(books[0].author, "luo");
    strcpy(books[1].title, "sanguo");
    strcpy(books[1].author, "san");
    int i;
    for (i = 0; i < 2; ++i) {
        printf("%s %s\n", books[i].title, books[i].author);
    }
    printf("\ns=%d",s);
    printf("\nb.title=%s\n",b->title);
    printf("\nb.title=%s\n",(*(b+1)).title);

    return 0;
}

 

相关文章:

  • 空间数据结构管理---RTree (下篇,代码实例)
  • 看我炫一下
  • Array.from(new Set)去重 与Array.map()
  • Go 学习笔记(89) — 接口类型变量的等值比较操作(nil 接口变量、空接口类型变量、非空接口类型变量)
  • dubbo源码解析之服务调用(通信)流程
  • Linux网络技术学习(四)—— 用户空间与内核的接口
  • Django--ORM 多表查询
  • pytest 运行方式、常用参数、前后置条件
  • MySQL-1-SQL讲解
  • 数据结构与算法之美读书笔记15
  • msf辅助模块详细操作
  • 【移动端网页特效】02-移动端轮播图(原生JS)
  • 神经网络(十二)卷积神经网络DLC
  • vue3.x 组件间传参
  • Tomcat域名访问文件出现访问不到的问题
  • $translatePartialLoader加载失败及解决方式
  • (三)从jvm层面了解线程的启动和停止
  • GraphQL学习过程应该是这样的
  • HTTP 简介
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • 如何解决微信端直接跳WAP端
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 使用SAX解析XML
  • 智能合约开发环境搭建及Hello World合约
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • $.ajax,axios,fetch三种ajax请求的区别
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (007)XHTML文档之标题——h1~h6
  • (2)nginx 安装、启停
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三)Honghu Cloud云架构一定时调度平台
  • .bat文件调用java类的main方法
  • .NET Core 版本不支持的问题
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET Reactor简单使用教程
  • .Net 路由处理厉害了
  • .net 使用ajax控件后如何调用前端脚本
  • .NET 指南:抽象化实现的基类
  • .NET 中的轻量级线程安全
  • .Net多线程总结
  • .NET中统一的存储过程调用方法(收藏)
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @Autowired自动装配
  • @EnableWebMvc介绍和使用详细demo
  • [\u4e00-\u9fa5] //匹配中文字符
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式