struct和typedef struct的区别

这篇具有很好参考价值的文章主要介绍了struct和typedef struct的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在了解struct和typedef struct之前,我们先学习下typedef的定义和用法。
typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。
C语言里typedef的解释是用来声明新的类型名来代替已有的类姓名,例如:
typedef int CHANGE;
指定了用CHANGE代表int类型,CHANGE代表int,那么:
int a,b;和CHANGE a,b;是等价的、一样的。方便了个人习惯,熟悉的人用CHANGE来定义int。

现在回到struct和typedef struct的区别这个问题上来

  • 用struct node{}来定义结构体时,当我们定义node的结构体变量是,写法为:struct node n;
  • 用typedef struct node{}NODE来定义结构体时,申请变量时,写法为:NODE n,这里NODE就相当于node的别名。

归纳起来就是在使用时,是否可以省去struct这个关键字
举例来说:
在C中定义一个结构体类型时如果要用typedef:

typedef struct Student
{
   int no;
   char name[12];
}Stu,student;

于是在声明变量的时候就可:Stu stu1;或者:student stu2;(Stu 和student 同时为Student的别名)
如果没有typedef即:

struct Student
{
   int no;
   char name[12];
}Stu;

就必须用struct Student stu1;或者struct Stu stu1来声明
另外这里也可以不写Student文章来源地址https://www.toymoban.com/news/detail-496080.html

typedef struct
{
   int no;
   char name[12];
}Stu;

到了这里,关于struct和typedef struct的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TeamView: 为了进一步增强安全性,在发起连接之前,我们希望您先验证您的账户

    TeamViewPC端远程连接另外一台电脑 弹出窗口:为了进一步增强安全性,在发起连接之前,我们希望您先验证您的账户 电脑浏览器自动跳转到手机号验证页面,输入正确的手机号后,点击验证却一直提示 手机号无效、手机号未知等异常。 复制验证链接到手机 https://login.teamviewer.

    2024年02月14日
    浏览(51)
  • Docker学习之前需要了解的几个概念

    1.1. 命名空间(Namespaces) 命名空间是Linux内核提供的资源隔离机制,它通过创建多个独立的 全局视图 ,使得在不同命名空间中的进程可以拥有各自独立且互不干扰的系统资源。每个命名空间提供了一种逻辑上的隔离效果,让进程看到的是一个受限或定制化的环境,而非整个

    2024年01月23日
    浏览(49)
  • C++的struct和class的区别

    差异特性 struct class 成员访问范围 默认public 默认private 继承关系访问范围 默认public 默认private {}初始化 1、纯数据或纯数据+普通方法的结构体支持;2、带构造函数或虚方法的结构体不支持 不支持 1.1 成员访问范围的差异 1. struct 可以正常的编译和执行。 2. class 【扩展】如果不

    2024年02月09日
    浏览(22)
  • C++面试八股文:struct、class和union有哪些区别?

    某日小二参加XXX科技公司的C++工程师开发岗位5面: 面试官:struct和class有什么区别? 小二:在C++中,struct和class的唯一区别是默认的访问控制。struct默认的成员是public的,而class的默认成员是private的。 面试官:struct、class和union有哪些区别? 小二:union和struct、class在内存布

    2024年02月07日
    浏览(47)
  • C++引用的相关定义以及使用场景与指针之前的区别

    🌏博客主页: 主页 🔖系列专栏: C++ ❤️感谢大家点赞👍收藏⭐评论✍️ 😍期待与大家一起进步! 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。 引用的特性: 引用在定义时必

    2024年02月03日
    浏览(30)
  • 【C++】类和对象 - 封装 - 属性和行为,访问权限,class 和 struct区别,成员属性私有化

    No. Contents 1 【C++】基础知识 - HelloWorld,注释,变量,常量,,标识符 2 【C++】数据类型 - 整型,sizeof,实型,字符型,转义字符,字符串类型,布尔类型,数据的输入 3 【C++】运算符 - 算术运算符,赋值运算符,比较运算符,逻辑运算符 4 【C++】程序流程结构 - 循序结

    2024年02月07日
    浏览(35)
  • 记录--让我们来深入了解一下前端“三清”是什么

    在前端开发中,我们经常听到关于“三清”的说法,即 window 、 document 、 Object 。这三者分别代表了 BOM(浏览器对象模型)、DOM(文档对象模型)以及 JS 的顶层对象。在这个体系中,我们通过 JavaScript 与浏览器进行深度交互,构建出丰富多彩的网页应用。同时,JS 类也是前端

    2024年02月05日
    浏览(46)
  • 白话云计算:让我们了解云计算,拥抱云计算

    随着数字化转型的加速,越来越多的企业开始选择云计算作为信息技术应用的基础设施。那么,什么是云计算?云计算究竟有哪些优势?企业该如何选择云计算呢?让我们一起来探讨一下吧。 按照我自己服务的企业的经验,给大家简单介绍一下: 我服务的企业应该说不算小

    2024年02月06日
    浏览(31)
  • 让我们彻底了解Maven(二)--- Maven私服的搭建

    首先我们为什么需要搭建Maven私服,一切技术来源于解决需求,因为我们在实际开发中,当我们研发出来一个公共组件,为了能让别的业务开发组用上,则搭建一个远程仓库很有必要,写完公用组件后,直接发布到远程仓库,别人需要用到时,直接从远程仓库拉取即可,而你

    2024年02月08日
    浏览(33)
  • Premint工具,作为普通人我们需要了解哪些内容?

    如今加密大环境冷静期,大多数项目自身也陷入启动资金少,宣发困难,新员增量和社区联动无法达到启动规模,圈内名人和打卡社团的高价广告费让小项目方成为第一波韭菜,项目的白名单公售信息无法传递于圈子,于是一个喜闻乐见的好工具Premint及时出现并帮助大量的

    2024年01月17日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包