问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言结构体里的结构体怎么初始化

发布网友 发布时间:2022-04-23 12:31

我来回答

5个回答

热心网友 时间:2023-10-13 11:29

方法是在定义变量的同时给其一初始值。结构体变量的初始化,遵循相同的规律。
简单变量的初始化形式如下:
数据类型 变量名=初始化值;
例如,定义整型变量a,并给其初始化值10的语句如下
int a=10;
数组的初始化,需要通过一常量数据列表,对其数组元素分别进行初始化,形式如下:
数据类型 数组名称〔数组长度〕={初始化值1,初始化值2,…, 初始化值n};
例如,定义长度为5的整型数组,并对其初始化的语句如下:
int A[5]={20,21,0,3,4};
结构体变量的初始化方式与数组类似,分别给结构体的成员变量以初始值,而结构体成员变量的初始化遵循简单变量或数组的初始化方法。具体的形式如下:
struct 结构体标识符
{
成员变量列表;

};
struct结构体标识符 变量名={初始化值1,初始化值2,…, 初始化值n };
例如,定义struct Point类型变量,并初始化的语句如下:
struct Point oP1={0.0,0.2,0.3};
struct Point类型变量oP1的三个成员变量的值分别为
oP1.x=0.0,
oP1.y=0.2
oP1.z=0.3
由于定义结构体变量有三种方法,因此初始化结构体变量的方法对应有三种,上面已经介绍了其中的一种形式,其他两种形式如下:
struct Point
{
double x;
double y;
double z;
} oP1={0.0,0.2,0.3}; struct
{
double x;
double y;
double z;
} oP1={0.0,0.2,0.3};
在初始化结构体变量时候,既可以初始化其全部成员变量,也可以仅仅对其中部分的成员变量进行初始化。例如:
struct Student
{
long id;
char name[20];
char sex;
}a= {0};
其相当于a.id=0;a.name=“”;a.sex=‘\0x0’。
仅仅对其中部分的成员变量进行初始化,要求初始化的数据至少有一个,其他没有初始化的成员变量由系统完成初始化,为其提供缺省的初始化值。

热心网友 时间:2023-10-13 11:29

这样初始化理论上是可行的,你用的编译器应该是VC++6.0吧!主要是VC++6.0这个编译器不支持这样的初始化!只能一个一个初始化,比如sub[0].subject="高级语言程序设计",这样!

 

struct subject

 {

  string subname;//这个要改为string类型   因为char subname[20]不能一次性赋值只能一个一个赋值

  int time;

  int point;

  int mark;

 }sub[4];

int main()//一个结构体里面不能再定义另一个结构体

{

 sub[0].subname="高级语言程序设计";

}

 还有问题的话可以追问!

热心网友 时间:2023-10-13 11:30

中间又有结构体嵌套,你的格式应该是{{ ..{}..},{..{}..},...}
其实一般不这么初始化,定义全局静态变量或者指针,指针的话通过malloc分配内存,然后通过->访问结构体成员,静态变量的通过.访问成员,然后赋值。

热心网友 时间:2023-10-13 11:30

直接给结构体变量的成员赋值就行
比如
p.name="张三";
p.age=30;这样
另外,也可以一次性把所有成员的值全赋给结构体变量,不过跟数组一样要用大括号,比如
p={"张三",30};这样子

热心网友 时间:2023-10-13 11:31

struct studentgrade
{
  int num;
  char name[9];
  char subname[20];
  int time;
  int point;
  int mark;
 }sub;

这样就可以了,用的时候sub.加上元素名就可以了 比如sub.num     sub.name  这样就可以了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 C语言结构体初始化操作是什么意思 这双斯凯奇三代是不是正品 六百多买的 求大神鉴定斯凯奇11930☺ 斯凯奇go walk 2 和 3 的区别 斯凯奇2020年代言人? 大家觉得斯凯奇一代好看还是二代好看 [i请问谁知道EXO代言斯凯奇到底有几个系列,有几款,发图。在线等谢谢真的急用 斯凯奇珍珠款是第几代 斯凯奇12493试第几代 有会用奶油胶的吗, 斯凯奇熊猫鞋13170是第几代 做手机壳的奶油胶用不完,下次再用的时候有点干了怎么办?是滴水还是滴油还是加热还是怎么处理? 斯凯奇熊猫鞋13148是第几代 做diy奶油胶手机壳需要哪些材料 斯凯奇13144是第几代 奶油胶手机壳怎么保养 做滴胶和奶油胶手机壳都需要准备什么 奶油胶不会做手机壳咋办啊? 奶油胶是怎么做出来的 奶油手机壳制作成本高麽 c语言结构体初始化 c语言怎么结构数据初始化? c语言中结构体中有结构体怎么初始化 C语言结构体初始化问题 C语言怎么给结构体的数组初始化?说的不太明白,具体看下面例子 关于C语言结构体构造函数初始化的问题? c语言如何对结构体某一成员初始化 C语言 结构体声明中const成员如何初始化 鱼丸汤英文名叫什么? C语言里面结构体初始化遇到问题!!求助高手!! 汤类 英语单词 在杭州,我想报考人力资源管理员,大专刚毕业,想知道需要什么条件,能不能报考,怎么报考? c语言结构体初始化赋值 C结构体成员初始化memset 我在杭州,要参加2012年5月的人力资源管理师*考试,不要通过培训机构,哪里可以报名?急急急 谁知道中国各种的传统食品用英语怎么说? c语言,结构变量初始化 杭州聚人人力资源有限公司怎么样? 汤的英文是什么 常吃的食物及其对应的的英文翻译是什么?