第一种语法表示

struct 结构体名称

   数据类型 member1; 
   数据类型 member2; 
}; 
#include<iostream>
using namespace std;
struct Student
{
int sNo;
char name[10];
};
int main()
{
struct Student stu;
//stu.name="zhangsan";//这种赋值方式是不对的
strcpy(stu.name, "zhangsan");
stu.sNo=18;
cout<<stu.name<<endl;
cout<<stu.sNo<<endl;
}

第二种语法表示

typedef struct 结构体名称

   数据类型 member1; 
   数据类型 member2; 
}结构体名称别名; 



这种方式在声明结构体变量时有两种方式。

第一种:struct 结构体名称 构体变量名

第二种:结构体名称别名 结构体变量名

原因:这里使用了typedef关键字,此关键字的作用就是声明数据类型的别名,方便用户编程,所以这里用了之后,结构体名称别名就相当于struct 结构体名称。在声明结构体变量时,就无需写struct了。

#include<iostream>
using namespace std;
typedef struct Student
{
int sNo;
char name[10];
} stud;
int main()
{
struct Student stu;//方式一
stud stu1;//方式二,以结构体别名声明一个结构变量stu1,此处可以省略关键字struct
//stu.name="zhangsan";//这种赋值方式是不对的
strcpy(stu.name, "zhangsan");
stu.sNo=18;
stu1.sNo=19;
cout<<stu.name<<endl;
cout<<stu.sNo<<endl;
cout<<stu1.sNo<<endl;
}

第三种方式

struct 结构体名称

   数据类型 member1; 
   数据类型 member2; 
}结构体变量
#include<iostream>
using namespace std;
struct Student
{
int sNo;
char name[10];
} stu;//这里相当于直接声明并定义了一个结构体变量stu
int main()
{
//struct Student stu;//错误,这里就不可以再这样声明变量
//stud stu1;///错误,
//stu.name="zhangsan";//这种赋值方式是不对的
strcpy(stu.name, "zhangsan");
stu.sNo=18;
cout<<stu.name<<endl;
cout<<stu.sNo<<endl;
//cout<<stu1.sNo<<endl;
}

第四种方式

struct

   数据类型 member1; 
   数据类型 member2; 
}结构体变量名;

此方式是匿名结构体,在定义时同时声明2个结构体变量,但不能在其它地方声明,因为我们无法得知该结构体的标识符,所以就无法通过标识符来声明变量。

#include<iostream>
using namespace std;
struct
{
int sNo;
char name[10];
} stu1,stu2;//这里相当于直接声明并定义了2个结构体变量stu1,stu2
int main()
{
strcpy(stu1.name, "zhangsan");
stu1.sNo=18;
stu2.sNo=8;
cout<<stu1.name<<endl;
cout<<stu1.sNo<<endl;
cout<<stu2.sNo<<endl;
}

C C++结构体四种方式的更多相关文章

  1. JAVA解析XML的四种方式

    java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这 ...

  2. 【Java EE 学习 80 下】【调用WebService服务的四种方式】【WebService中的注解】

    不考虑第三方框架,如果只使用JDK提供的API,那么可以使用三种方式调用WebService服务:另外还可以使用Ajax调用WebService服务. 预备工作:开启WebService服务,使用jd ...

  3. 解析xml文件的四种方式

    什么是 XML? XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没 ...

  4. PHP/HTML混写的四种方式总结

    PHP/HTML混写的四种方式总结 一.总结 一句话总结: 注意点: 1.双引号里面解析变量:echo "$Content" 2.HEREDOC和NOWDOC的关系:类似于双引号包 ...

  5. Java创建线程的四种方式

    Java创建线程的四种方式 1.继承Thread类创建线程 定义Thread类的子类,并重写该类的run方法,run()方法的内容就是该线程执行的内容 创建Thread子类的实例,即创建了线程对象. ...

  6. 盘点用jQuery框架实现“for循环”的四种方式!

    摘要:分享在jQuery高级开发中对元素标签体的遍历常用的几种方法. 本文分享自华为云社区<盘点用jQuery框架实现"for循环"的四种方式!>,原文作者:灰小猿 . ...

  7. C#批量插入数据到Sqlserver中的四种方式

    我的新书ASP.NET MVC企业级实战预计明年2月份出版,感谢大家关注! 本篇,我将来讲解一下在Sqlserver中批量插入数据. 先创建一个用来测试的数据库和表,为了让插入数据更快,表中主键采用的 ...

  8. ASP.NET MVC之下拉框绑定四种方式(十)

    前言 上两节我们讲了文件上传的问题,关于这个上传的问题还未结束,我也在花时间做做分割大文件处理以及显示进度的问题,到时完成的话再发表,为了不耽误学习MVC其他内容的计划,我们今天开始好好讲讲关于MVC ...

  9. SWT组件添加事件的四种方式

    在我们CS日常开发过程中会经常去为组件添加事件,我们常用的为AWT与SWT.SWT的事件模型是和标准的AWT基本一样的.下面将按照事件的四种写法来实现它. 一.匿名内部类的写法 new MouseAd ...

  10. Java实现文件复制的四种方式

    背景:有很多的Java初学者对于文件复制的操作总是搞不懂,下面我将用4中方式实现指定文件的复制. 实现方式一:使用FileInputStream/FileOutputStream字节流进行文件的复制操 ...

随机推荐

  1. [转帖]window10下如何安装fio

    1.fio下载地址(实测有效): https://github.com/axboe/fio/releaseshttps://github.com/axboe/fio/releases 其他的地址如​​ ...

  2. [转帖]tar、gzip、zip、jar是什么,怎么查看?

    https://www.cnblogs.com/codelogs/p/16702759.html   原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 如果你是后 ...

  3. Oracle数据库权限学习--表或者是视图不存在

    Oracle数据库权限学习--表或者是视图不存在 摘要 本文写于: 12.10 01:00 巴西踢的太烂了 帮同事看一下补丁执行报错的问题. 问题原因很简单. user_all_table能够后去本用 ...

  4. pytest-xdist分布式

    使用pytest框架运行每条case的时候,都是上一条运行结束才会运行下一条,要是有成千上百条case 且每条运行2s那就是2*总条数,会浪费大量的时间和人力.为了节约时间和人力成本,pytest提供 ...

  5. 2024年最新的Python操控微信教程

    自从微信禁止网页版登陆之后,itchat 库实现的功能也就都不能用了,那现在 Python 还能操作微信吗?答案是:可以! 在Github上有一个项目叫<WeChatPYAPI>可以使用 ...

  6. 【小分享】vm-storage中,计算metric的平均长度

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 表达式如下: sum by (type) (vm_cach ...

  7. Unity字体和画面花屏处理

    字体花屏和相机渲染花屏,这两者的表现有明显的差异. 字体花屏 字体花屏是持续性的,直到组件被刷新,或字体图集被刷新.目前在我们项目中当游戏启动时,就会填充游戏用到的所有字符到贴图中,所以并没有遇到此问 ...

  8. NLP涉及技术原理和应用简单讲解【二】:paddle(分布式训练、AMP自动混合精度训练、模型量化、模型性能分析)

    参考链接: https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/06_distributed_training/cluster_q ...

  9. C/C++ 关于继承与多态笔记

    继承的基本语法: 继承的目的就是用于提高代码的可用性,减少代码的重复内容,高效开发. #include <iostream> using namespace std; class Base ...

  10. 解决github无法进入问题,DNS加速

    1.电脑的hosts文件在下面这个地址,找到hosts文件 C:\Windows\System32\Drivers\etc 2.进入文件夹目录etc 找到hosts文件,使用记事本编辑 3.进入这个网 ...