C语言中的结构体,结构体中数组初始化与赋值
最近写c语言中的结构体遇到了些问题,从网上找了些资料如下:
结构体是连续存储的,但由于结构体中成员类型各异,所以会存在内存对齐问题,也就是内存里面会有空档,具体的对齐方式这里 暂不讨论;
1.结构体的定义和赋值
结构体是可以直接初始化的,在定义的时候,就可以初始化,而且如果你的结构体中恰好有字符数组的话,这个时候初始化是不错的选择,原因很简单,字符数组只能定义的时候直接初始化
后来就不可以了,后来你就只能用strcpy函数来拷贝初始化了。
struct 结构体名
{数据类型 成员名1;数据类型 成员名2;:数据类型 成员名n;
};
2.定义结构体变量的3种方法:
第1种:
struct 结构体名
{
成员列表;
}变量名1;
第2种:
struct 结构体名
{
成员列表;
};
struct 结构体名 变量名2;
第3种:
typedef struct 结构体名
{成员列表;
}结构体别名;结构体别名 变量名3;
访问结构体成员的2种方式:
1、直接访问:结构体变量名.成员名
2、指针访问:结构体变量指针->成员名
3.结构体初始化操作
1. struct 结构体名 变量名 = {0,0,0,...};2. struct 结构体名 变量名 =
{.成员1 = 0,.成员2 = 0,.成员3 = 0,...
};3. struct 结构体名 变量名 =
{成员1: 0,成员2: 0,成员3: 0
};
第2、3种方式成员顺序可以打乱,甚至可以只初始化其中某几个成员。3种初始化的方式在linux下使用GCC编译均可通过。
4.结构体定义时的嵌套
1、内部的结构体名称定义齐全
struct student
{int a;int b;struct other{int c;int d;}name;
};引用c成员的方式: 变量.name.c
struct student
{int a;int b;struct{int c;int d;};
};引用c成员的方式:变量.C
C语言中的结构体,结构体中数组初始化与赋值相关推荐
- c语言数组初始化未赋值则默认是任意还是0?
https://bbs.csdn.net/topics/310142759 一般来说 全局变量.静态变量处于数据区,默认初始化为0 (如果指定初始值,则为指定的值) 而局部变量处于堆栈区,其数值是随机 ...
- c语言定义不定长数组初始化_大学C语言期末考试练习题(带详解答案)(1)
链接:https://pan.baidu.com/s/1d2Bb1vNTyBNpFGneIAicVw 提取码:y7uw 单项选择题 C语言的基本单位是 函数 1.(A )是构成C语言程序的基本单位. ...
- C语言结构体与C++中结构体和类的区别
在C++中除了类中可以有构造函数和析构函数外,结构体中也可以包含构造函数和析构函数,这是因为结构体和类基本雷同,唯一区别是,类中成员变量默认为私有,而结构体中则为公有.注意,C++中的结构体是可以有析 ...
- 【C 语言】文件操作 ( 学生管理系统 | 命令行接收数据填充结构体 | 结构体写出到文件中 | 查询文件中的结构体数据 )
文章目录 一.学生管理系统 二.代码示例 一.学生管理系统 前两篇博客 [C 语言]文件操作 ( 将结构体写出到文件中并读取结构体数据 | 将结构体数组写出到文件中并读取结构体数组数据 ) [C 语言 ...
- 【C 语言】结构体 ( 结构体中嵌套二级指针 | 为 结构体内的二级指针成员 分配内存 | 释放 结构体内的二级指针成员 内存 )
文章目录 一.结构体中嵌套二级指针 1.结构体中嵌套二级指针 类型声明 2.为 结构体内的二级指针成员 分配内存 3.释放 结构体内的二级指针成员 内存 二.完整代码示例 一.结构体中嵌套二级指针 1 ...
- C语言中函数如何返回结构体?
//#include "stdafx.h"//If the vc++6.0, with this line. #include "stdio.h" #inclu ...
- c语言结构体在内存中的存储,C语言结构体在内存中的存储情况探究------内存对齐...
条件(先看一下各个基本类型都占几个字节): voidsize_(){ printf("char类型:%d", sizeof(char)); printf("int类型:% ...
- c语言结构体共用体枚举实例程序,10-C语言结构体-共用体-枚举
结构体是什么? 结构体和数组一样属于构造类型 数组是用于保存一组相同类型数据的,而结构体是用于保存一组不同类型的数组 定义结构体 在使用结构体之前必须先定义结构体类型,因为C语言不知道你的结构体中需要 ...
- 【C 语言】结构体 ( 结构体 数组 作为函数参数 | 数组 在 堆内存创建 )
文章目录 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 二.完整代码示例 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 在上一篇博客 [C 语言]结构体 ( 结构体 数 ...
最新文章
- 《SQL与关系数据库理论——如何编写健壮的SQL代码》一第3章
- JavaScriptjQuery.变量作用域
- Quartz.Net实现作业定时调度详解
- Skywalking 结束孵化,成为 Apache 基金会顶级项目
- python数据结构与算法13_python 数据结构与算法 (13)
- 手机端召唤Debug
- 华为将推出智能显示屏产品:不同于传统电视机
- 阿里发力线下渠道,腾讯京东该如何打破其流量优势?
- 如何制作高效率的数据可视化大屏
- 1.5 推荐优秀书籍 - 网站重构与Web标准设计 - 学习笔记
- mybatis SqlSessionDaoSupport的使用(附代码下载)(转)
- 编译原理期末试题(8套含答案)
- 哪些人需要在三九天调理体质?什么情况需要泡三九药浴?
- power bi日期表相对_在Power BI中使用日期维度表
- 056.单链表就地逆置
- iOS自己总结的超级详细分解富文本大全(AttributedString),图文混排很轻松
- 实现iframe嵌套bilibili视频
- Clickhouse 生成日历表
- 数据科学库(HM)(Day2)——matplotlib常用统计图
- 是程序员都可能用到版本控制,如何使用它?如何在Vim中使用Git?