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

摘要:
1.首先定义结构类型,然后定义结构变量//注意在定义变量之前必须定义结构类型;2.在定义结构类型的同时定义结构变量;S2直接定义结构类型变量。此方法不能指定结构类型的名称,而是直接定义结构变量。当该值定义一次结构变量时,它适用。以后的程序不能再定义此类型变量。结构变量的初始化类似于初始化数组;请注意,每个初始化项必须与要初始化的结构成员的类型匹配。

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

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

struct book s1,s2,*ss;//注意这种之前要先定义结构体类型后再定义变量;

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

格式为;

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

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

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

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

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

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

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

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

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

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

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

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

#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;
}

免责声明:文章转载自《关于c语言中结构体的初始化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Elastic Search 聚合笔记安卓完全退出程序的六种方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

win7下JAVA环境变量配置方法

1、首先,根据自己的需要下载1.6或者1.7的JDK,安装JDK。(安装的时候记一下安装目录,后面会用到) 2、右键计算机→属性→高级系统设置→高级→环境变量,在系统变量部分新建名为"JAVA_HOME"的变量,变量值为之前安装jdk的目录,例如本人的为"D:Javajdk1.6.0_10"。 3、在系统变量部分新建名为"classpath"的变量,变量...

symfony中twig的模板变量与注释

程序会传递给模板若干变量,你需要在模板里输出他们。例如输出$hello 。1{{ hello }}。如果传递给模板的是对象或者数组,你可以使用点. 来输出对象的属性或者方法,或者数组的成员。或者你可以使用下标的方式。。1 {{ foo.bar }}。2 {{ foo[‘bar’] }}。如果你访问的值不存在就会返回null。TWIG有一整套的流程来确认值是...

phpstorm快捷键

phpstorm快捷键: // ctrl+shift+n 查找文件 // ctrl+j 插入活动代码提示 // ctrl+alt+t 当前位置插入围绕代码 // alt+insert 生成代码菜单 // ctrl+q 查看代码凝视 // ctrl+d...

入门&amp;amp;常量&amp;amp;变量

位:二进制中,每个0或1就是一个位,叫做bit(比特) 字节:计算机最小是存储单元(byte或B) 8bit = 1B 常用cmd命令: 启动: Win+R,输入cmd回车切换盘符 盘符名称:进入文件夹 cd 文件夹名称进入多级文件夹 cd 文件夹1文件夹2文件夹3返回上一级 cd ..直接回根路径 cd 查看当前内容 dir清屏 cls退出 exit J...

表变量与临时表

临时表: create table #tmpTbName(     colName1 int identity(1,1),     colName2 nvarchar(20))insert into #tmpTbName(colName1 ,colName2) select c1,c2 from c;drop table #tmpTbName;--删除临时...

关于mysql installer 的安装和环境变量配置

MySQL针对不同的用户提供了2中不同的版本: MySQL Community Server:社区版。由MySQL开源社区开发者和爱好者提供技术支持,对开发者开放源代码并提供免费下载。 MySQL Enterprise Server:企业版。包括最全面的高级功能和管理工具,不过对用户收费。 下面讲到的MySQL安装都是以免费开源的社区版为基础。打开My...