当前位置:首页 » 编程语言 » c语言总结结构的初始化
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言总结结构的初始化

发布时间: 2022-07-15 13:08:54

c语言,结构体数组怎么初始化

对于数组元素很多的初始化可以使用初始化列表方法。在c语言中用于进行初始化的程序结构则称为初始化器或初始化列表。

1、初始化器

初始化器是声明器的可选部分,它由一个'='以及其后的一个表达式(或含有多个以','隔开的带圆括号表达式的单一列表)所组成。后面这一列表有时也被称为“初始化(器)列表”(initializer list)或”初始化列表”(initialization list)。

例:

public class Curry

{public string MainIngredient { get; set; }

public string Style { get; set; }

public int Spiciness { get; set; }}

2、初始化列表

一个类/结构的构造函数可以在定义中于构造函数体前包含一个初始化列表,用以给类/结构的元素赋初值。

例:

class foo

{public:

foo(string s, int i):name(s), id(i){} ; // 初始化列表

private:

string name ;int id ;};

(1)c语言总结结构的初始化扩展阅读

在程序里,数据初始化也可能在没有由明确的语法来实现的情况下进行。例如说,如果一个静态变量在没有初始化(即未指定初值)的情况下被声明,则:对于原生数据类型:以对应类型的零值进行初始化;对于类中的静态对象:由其默认的构造函数来进行初始化。

每一个初始化部分里面的代码在程序运行后,或库的begin-end块运行之前。delphi使用对单元相关树的深度优先遍历来运行初始化部分。换句话说,就只在一个单元的初始化代码运行前,delphi就运行了特他使用的每一个单元的初始化部分。每一个单元仅初始化一次 。

❷ c语言结构体初始化

你已经定义了一个mem1,下一句又定义了一个mem1,所以它会提示你多次定义了,应该把第二个struct Mem去掉吧

❸ C语言结构体初始化问题

这个结构体中包含三个变量,num
name[20]
c
你的结构体初始化只初始化了
name[20]
其余俩个变量没有初始化,所以会报错
你可以这样初始化
struct
wo
b(1,"jack",'m');
要注意对结构体中所有变量都要初始化,除非这个变量有缺省值

❹ C语言结构体初始化操作是什么意思

定义变量的同时给变量赋值
即为变量的初始化,例如:
int
year
=
2003;
结构体
也类似的啦,
struct
BOOK
{
char
name[100];
float
price;
};
struct
BOOK
book_1
=
{"C语言",
25.0};

❺ C语言结构体初始化(在线,等!)

data2={2,8};直接这样是肯定不对的
struct complex data2={2,8};这样本来是对的,但是前面你已经有了这个变量了,相当于定义两次,这在C语言中是不允许的

❻ 一个C语言结构初始化的问题

你在初始化这个结构体时,使用的的语句是.num="Disk drive",.number=10,"Jack"。这样一来结构体part1中的num成员和number成员都已经被正确赋值,剩下的成员on_hand是int类型的,而"Jack"是字符串类型,自然无法赋值给on_hand,系统默认会将int类型的on_hand置为0。
另外,你在输出时顺序是number,num,on_hand,所以运行结果第一行是10,第二行是Disk drive,第三行是0。

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

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

❽ c语言,结构变量初始化

#include<stdio.h>
#include<string.h>
structstudent
{
charname[10];
intage;
structstudent*next;
};
voidmain()
{
structstudent*header,*p;
structstudentc={"qianfeng3",20,NULL};//只有在定义结构体变量时,才能进行数据初始化赋值,且abc三个的顺序要这样写,因为有&c&b的变量取地址操作,所以,要先有定义,才能使用变量
structstudentb={"qianfeng2",19,&c};
structstudenta={"qianfeng1",18,&b};
p=&a;
while(p)
{
printf("%s,%d ",p->name,p->age);
p=p->next;
}
}

❾ C语言结构体数组的初始化

同学,你注意到了Create()函数里面,你又定义了一句:

Listpr;

了么?这句话时关键,首先,你在main 函数(我猜应该是main吧)中写道:

Listpr1=Creat("p1",2,1);
Insert(&pr1);

看,你这个pr1是个局部变量吧?只在main()中有效的。而你上面那个Create中定义的呢?也是个局部变量,只在Create()中有效。所以,即使你在Create()中费劲全力为pr赋值。等调用完Create()后,pr还是会消亡的,回到main,时,这里的pr1就是另一个List变量了。

总而言之,Creat()里面的pr和main()里面的pr1是完全不同的两个变量。要想让他们变成一个变量。可选用指针传参。或者定义成全局变量。


另外,我一看到你的描述的那个“烫”字,就知道你用的是VC6.0吧?呵呵