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

例如一个struct student {char na[5];float grrade} , 它可以这样初始化 struct student stu[2]={"hjk",4},{"jkl",45}; 好像对于数组的每个元素都这样初始化一次, 但是如果数组元素很多怎么办?不可能这样一个一个初始化吧,有没有什么简便的,类似于数组中的默认没有赋值的为0.

第1个回答  2019-02-17
同学,你注意到了Create()函数里面,你又定义了一句:
List pr;了么?这句话时关键,首先,你在main
函数(我猜应该是main吧)中写道:
List pr1=Creat("p1",2,1);
Insert(&pr1);看,你这个pr1是个局部变量吧?只在main()中有效的。而你上面那个Create中定义的呢?也是个局部变量,只在Create()中有效。所以,即使你在Create()中费劲全力为pr赋值。等调用完Create()后,pr还是会消亡的,回到main,时,这里的pr1就是另一个List变量了。
总而言之,Creat()里面的pr和main()里面的pr1是完全不同的两个变量。要想让他们变成一个变量。可选用指针传参。或者定义成全局变量。
另外,我一看到你的描述的那个“烫”字,就知道你用的是VC6.0吧?呵呵
第2个回答  2015-10-21
方式一:
struct student stu[100] = {0};

方式二:
struct student stu[100];
memset( stu, 0, sizeof(stu) );
第3个回答  2010-07-09
struct student stu[2] = {0};
定义的时候顺便初始化,以保证安全。
第4个回答  2019-01-28
对结构体
struct a // a为结构体名
{
int b; // 两个int型的结构体变量
int c;
}初始化方式主要有以下几种:
struct a a1 =
{
.b = 1, // 分别初始化结构体中的两个变量
.c = 2
};或者
struct a a1 =
{
b:1,
c:2
};或者
struct a a1 = { 1, 2};
第5个回答  2015-09-28
调用memset函数

结构体数组怎么初始化
};当对数组中全部元素赋值时,也可不给出数组长度,例如:struct stu{ char *name; \/\/姓名 int num; \/\/学号 int age; \/\/年龄 char group; \/\/所在小组 float score; \/\/成绩 }class[] = { {"Li ping", 5, 18, 'C', 145.0},{"Zhang ping", 4, 19, 'A', 130.5},{...

C语言数组的初始化表示方法
1、定义的同时进行初始化,我们同样用数组的初始化引出结构体的初始化,我们知道数组在定义的同时进行初始化的代码如下:int nums[] = {1, 3, 5};由此可推出结构体在定义的同时进行初始化的代码如下:struct Person p = {"lee", 23, 1.8};2、先定义再进行初始化,这种初始化方法其实昨天的内...

结构体数组怎么初始化
\/\/ 有两种方法可以初始化结构体数组,如下例所示:include <iostream> include <string> include <iomanip> include <memory> using namespace std;\/\/ custom_type typedef struct tagStudent { int Id;string Name;}Student;int main(){ \/\/ 设置左对齐 cout.flags(ios::left);\/\/ 方式1: ...

c语言 在结构体中 初始化其中的数组
结构体是个空架子,是无法“初始化其中的数组”的,只有初始化结构体的对象(即变量)。像你这里可以这么做:在使用这个结构体前写一句struct bf x={NULL,NULL,NULL,NULL};,那么x中的所有字符数组就都为空了。

c语言结构体学习整理(结构体初始化,结构体指针)
4. 结构体数组初始化是重点,必须在定义时初始化,不能先定义再赋值。例如,用"="赋值字符串给结构体数组是错误的,可通过定义数组时直接赋值或使用strcpy函数复制。5. 结构体与指针的关系密切,包括指向结构体变量和数组的指针,以及结构体成员为指针的情况。在使用时需注意内存分配和指针初始化。6. ...

C语言中,如何用键盘初始化结构体数组里的元素?
for (int i=0; i<3; i++){ scanf("%d", &(stu[i].num));fflush(stdin);scanf("%s", stu[i].name);scanf(" %c", &(stu[i].sex)); \/\/%c前一定要有空格 scanf("%d", &(stu[i].age));for (int j=0; j<3; j++)scanf("%f", &(stu[i].score[j]));scanf("%d...

结构体指针数组怎么初始化?
结构体初始化(方法一)using namespace std;struct S{ int i;float f;};struct S s={10,15.5};\/\/使用{}的正确方式 如果改成 struct S s;s={10,15.5};就不行 方法二(通行的方法)从Ucos_ii.c内核代码中学到的 OS_MemClr((INT8U )&OSTCBTbl[0],sizeof(OSTCBTbl));Clear all the ...

C语言数组的初始化表示方法
不是inta[] 而是例如int a[10]这种。括号内一定要有个常量数字。我们可以这样定义 define N 5 int a[N]这表明了数组名为a;数组有5个元素;分别是a[0]到a[4];对于数组来说;数组是变量的集合,因此数组也具有与变量相同的数据类型和储存类型。数组的类型就是它所有的变量的类型。在定义数组...

a[4]={[0].x=8.0;是什么意思c语言?
它的含义是在数组 a 的第五个元素上进行结构体初始化,并给结构体成员 x 赋值为 8.0。更具体地说,这个表达式可以用于初始化结构体数组 a 的第五个元素,该元素是一个结构体,其中含有成员 x。这里使用了 C 语言中的“指定成员初始化”的语法,即使用 [0].x 表示初始化结构体成员 x,并将其...

请问C语言中的结构体中的整型数组怎么初始化?
struct student { int num; char name; float score[3]} stu = {1, 'm', {90.1, 90.2, 90.3}};这样就行了,原题中的那个不叫初始化。

相似回答