【C语言】结构体的创建和使用与结构体内存对齐

本文介绍了C语言中的结构体,包括结构体的声明(全局与特殊声明)、变量定义与初始化、结构体自引用、成员访问、传参方式以及结构体内存对齐的规则。通过实例详细解析了结构体成员的排列和内存计算,帮助理解C语言中结构体的工作原理。
摘要由CSDN通过智能技术生成

前言

在生活中我们要描述一个人时是不是要知道他的名字、性别、年龄啊,同理在c语言中要描述一个人也要他相关的信息,而我们在c语言中储存一个人的信息时可以发现一个人的信息需要多种数据类型来储存我们可以把这类对象称之为复杂对象,因此我们来介绍自定义类型中的结构体,结构体就可以很好的储存一个复杂对象(如一个人或一本书)。

结构体的声明

全局声明

结构体声明的语法是这样的

struct 结构体名
{
   
	成员变量;
};/*注意分号不能丢*/

举例当我要描述一个人的信息时我们可以这样写。

#include <stdio.h>

struct Jk
{
   
	char name[10];/*名字*/
	char gender[5];/*性别*/
	int age;/*年龄*/
};

int main() 
{
   
    return 0;
}

此时写的Jk这个结构体是全局的,如果想写成局部只需这样写

#include <stdio.h>

int main() 
{
   
	struct Jk
	{
   
		char name[10];/*名字*/
		char gender[5];/*性别*/
		int age;/*年龄*/
	};
    return 0;
}

特殊声明

还有一种特殊声明的声明叫不完全声明语法如下。

struct
{
   
	成员变量;
};

这种声明省略了结构体名此时的结构体叫匿名结构体。
此时的匿名结构体是无法使用的,他的使用我们在结构体变量定义与成员初始化里讲。

结构体变量定义与成员初始化

成员类型

结构的成员可以是标量、数组、指针,甚至是其他结构体。

变量定义

声明好结构体后,如何定义变量其实很简单他有三种定义的方法:

  1. 声明时顺带定义一个全局结构体变量
#include <stdio.h>

struct Jk
{
   
	char name[10];/*名字*/
	char gender[5];/*性别*/
	int age;/*年龄*/
}jk;/*<--声明时顺带定义一个全局结构体变量*/

int main() 
{
   
    return 0;
}
  1. 定义一个全局结构体变量
#include <stdio.h>

struct Jk
{
   
	char name[10];
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值