前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于c语言中结构体的初始化

关于c语言中结构体的初始化

作者头像
用户4645519
发布2020-09-08 09:49:08
2.9K0
发布2020-09-08 09:49:08
举报
文章被收录于专栏:嵌入式学习嵌入式学习

1、先定义结构体类型后再定义结构体变量;

格式为;struct 结构体名 变量名列表;

代码语言:javascript
复制
struct book s1,s2,*ss;//注意这种之前要先定义结构体类型后再定义变量;

2、在定义结构体类型的同时定义结构体变量;

格式为;

代码语言:javascript
复制
struct 结构体名{成员列表;}变量名列表;//这里结构体名是可以省的,但尽量别省;struct book{char title[MAXTITL];//一个字符串表示的titile 题目 ;char author[MAXAUTL];//一个字符串表示的author作者 ;float value;//一个浮点型表示的value价格;}s1,s2

直接定义结构体类型变量,就是第二种中省略结构体名的情况;

这种方式不能指明结构体类型名而是直接定义结构体变量,并且在值定义一次结构体变量时适用,无结构体名的结构体类型是无法重复使用的。

也就是说,后面程序不能再定义此类型变量了,除非再写一次重复的struct。

关于结构体变量的初始化与初始化数组类似;

也是使用花括号括起来,用逗号分隔的初始化好项目列表,注意每个初始化项目必须要和要初始化的结构体成员类型相匹配。

代码语言:javascript
复制
struct book s1={//对结构体初始化         "yuwen",//title为字符串         "guojiajiaoyun",//author为字符数组         22.5    //value为flaot型     };//要对应起来,用逗号分隔开来,与数组初始化一样;

加入一点小知识;关于结构体初始化和存储类时期的问题;如果要初始化一个具有静态存储时期的结构体,初始化项目列表中的值必须是常量表达式;

注意如果在定义结构体变量的时候没有初始化,那么后面就不能全部一起初始化了;意思就是:

代码语言:javascript
复制
/这样是可以的,在定义变量的时候就初始化了;struct book s1={//对结构体初始化         "guojiajiaoyun",//author为字符数组           "yuwen",//title为字符串           22.5    };/这种就不行了,在定义变量之后,若再要对变量的成员赋值,那么只能单个赋值了;struct book s1;    s1={          "guojiajiaoyun",//author为字符数组           "yuwen",//title为字符串           22.5  };//这样就是不行的,只能在定义的时候初始化才能全部赋值,之后就不能再全体赋值了,只能单个赋值;
只能;
s1.title = "yuwen";........//单个赋值;

对于结构体的指定初始化;

代码语言:javascript
复制
#include<stdio.h>
#include<stdlib.h>

struct book
{
    char title[50];//一个字符串表示的titile 题目 ;
    char author[50];//一个字符串表示的author作者 ;
    float value;//一个浮点型表示的value价格;
} s2;


int main(void)
{
    struct book s1 = //对结构体初始化
    {
        .title = "yuwen",//title为字符串
        .author = "guojiajiaoyun",//author为字符数组
        .value = 22.5    //value为flaot型
    };

    s1.value = 9;
    return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档