C语言_结构体的4种定义初始化方式及案例
结构体是一种构造数据类型 (构造数据类型:数组类型、结构体类型(struct)、共用体类型(union))。用途:把不同类型的数据组合成一个整体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,通过一定方法访问修改内部变量。
第一种:
#include <stdio.h>
#include <string.h>
int main()
{
struct PERSON{
int age;
int height;
char name[15];
}p1;
p1.age = 28;
p1.height = 178;
strcpy(p1.name, "phper");
printf("%d,%d,%s",p1.age,p1.height,p1.name);
}
第二种:
#include <stdio.h>
#include <string.h>
struct PSERSON{
int age;
int height;
char name[15];
}p1={
age:28,
height:178,
name:"phper"
};
printf("%d,%d,%s",p1.age,p1.height,p1.name);
}
第三种:
#include <stdio.h>
#include <string.h>
struct PSERSON{
int age;
int height;
char name[15];
}p1={
.age = 28,
.height = 178,
.name = "phper"
};
printf("%d,%d,%s",p1.age,p1.height,p1.name);
}
第四种:
#include <stdio.h>
#include <string.h>
struct PSERSON{
int age;
int height;
char name[];
}p1={,,"phper"};
printf("%d,%d,%s",p1.age,p1.height,p1.name);
}
结果
小案例:
#include <stdio.h>
#include <string.h>
struct TEST
{
int age;
int height;
char name[];
}; void function_print(struct TEST p1)
{
printf("%d\n",p1.age);
printf("%d\n",p1.height);
printf("%s\n",p1.name);
} int main()
{
struct TEST test={,,"phper"};
function_print(test);
return ;
}
结果:
---------再来一个案例结合注释吸收一下---------
#include <stdio.h> int main() {
//定义结构体类型
struct Person
{
int age;
int height;
char *name;
};
//初始化的4种方式
//1.定义的同时初始化
struct Person p1 = {,,"phper"}; //2.先定义再逐个初始化
struct Person p2;
p2.age = ;
p2.height = ;
p2.name = "phper"; //3.先定义再一次性初始化
struct Person p3;
p3 = (struct Person){,,"phper"}; //注意:结构体和数组在这里的区别,数组不能先定义再进行一次性初始化
//结构体要明确的告诉系统{}中是一个结构体 //4.指定将数据赋值给指定的属性
struct Person p4 = { .age= , .height=, .name="phper"};
//打印结构体中取数据 //拿p4测试
printf("%d\n",p4.age);
printf("%d\n",p4.height);
printf("%s\n",p4.name); return ;
}
C语言_结构体的4种定义初始化方式及案例的更多相关文章
- C语言_结构体变量指针做函数参数的使用案例
# include <stdio.h> # include <stdlib.h> # include <string.h> # include <malloc ...
- c 语言结构体的三种定义方式
struct 结构体名{ 成员列表: ..... }结构体变量: 结构体类型变量的定义 结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体 ...
- c中结构体的4种定义
1.常规的标准方式: 1 #include <stdio.h> 2 3 struct student{ 4 int age; 5 float score; 6 ...
- C语言中结构体对齐问题
C语言中结构体对齐问题 收藏 关于C语言中的结构体对齐问题 1,比如: struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B; ...
- go语言学习-结构体
结构体 go语言中的结构体,是一种复合类型,有一组属性构成,这些属性被称为字段.结构体也是值类型,可以使用new来创建. 定义: type name struct { field1 type1 fie ...
- [日常] Go语言圣经--结构体,JSON习题
Go语言圣经-结构体 1.结构体是一种聚合的数据类型,是由零个或多个任意类型的值聚合成的实体 2.通常一行对应一个结构体成员,成员的名字在前类型在后,不过如果相邻的成员类型如果相同的话可以被合并到一行 ...
- C语言中结构体赋值问题的讨论
今天帮师姐调一个程序的BUG,师姐的程序中有个结构体直接赋值的语句,在我印象中结构体好像是不能直接赋值的,正如数组不能直接赋值那样,我怀疑这个地方有问题,但最后证明并不是这个问题.那么就总结一下C语言 ...
- ios开发中的C语言学习—— 结构体简介
在开发过程中,经常会需要处理一组不同类型的数据,比如学生的个人信息,由姓名.年龄.性别.身高等组成,因为这些数据是由不同数据类型组成的,因此不能用数组表示,对于不同数据类型的一组数据,可以采用结构体来 ...
- 01.C语言关于结构体的学习笔记
我对于学习的C语言的结构体做一个小的学习总结,总结如下: 结构体:structure 结构体是一种用户自己建立的数据类型,由不同类型数据组成的组合型的数据结构.在其他高级语言中称为记录(record) ...
随机推荐
- int指令
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- ASP.NET MVC5 中百度ueditor富文本编辑器的使用
随着网站信息发布内容越来越多,越来越重视美观,富文本编辑就是不可缺少的了,众多编辑器比较后我选了百度的ueditor富文本编辑器. 百度ueditor富文本编辑器分为两种一种是完全版的ueditor, ...
- .NET: 谈谈共享项目 (Shared Project) 的使用
从 Visual Studio 2015 起,共享项目 (Shared Project) 作为新的一种项目类型被添加到项目模板列表中,它的主要目的是使多个不同类型的项目之间可以共享代码或资源.相比它的 ...
- 2018年web前端学习路线图
前端的的技术一直在变化,更新和变革,现在基本是三驾马车(vue,angualr,react)主导整个前端框架,但是无论对于新人或者有经验的程序员,这些知识在必须掌握 前端必会技能 上图罗列了整个前端的 ...
- python_协程方式操作数据库
# !/usr/bin/python3 # -*- coding: utf-8 -*- import requests import gevent import pymysql from gevent ...
- 苹果系统css样式变化
原因:苹果自带样式覆盖了 参考文章比较详细,就不自己写了,copy了一份~~~ @参考文章 只要在样式里面加一句去掉css去掉iPhone.iPad的默认按钮样式就可以了!~ input[type=& ...
- 数据流(任务并行库 TPL)
TPL 数据流库向具有高吞吐量和低滞后时间的占用大量 CPU 和 I/O 操作的应用程序的并行化和消息传递提供了基础. 它还能显式控制缓存数据的方式以及在系统中移动的方式. 为了更好地了解数据流编程模 ...
- Navicat for MySQL导出表结构脚本的方法
使用MySQL可视化工具Navicat导出MySQL的表结构脚本的方法. 1.右键Navicat中的数据库→数据传输(Data Transfer). 2.左边数据库对象(Database Object ...
- Linux安装ffmpeg
1.安装ffmpeg 简单步骤: A.首先去官网下载源码包,我的是ffmpeg-3.4.tar.bz2,下载之后上传至Linux准备安装,首先解压安装包: tar -xjvf ffmpeg-3.4 ...
- jenkins安装配置[二]
标签(linux): jenkins 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 安装依赖,如果本机已有java环境可跳过 yum install java- ...