可以在定义结构体数组时把变量直接初始化吗

如题所述

可以呀,试试就知道了:

#include <stdio.h>

struct A {
    int a;
    float b;
    const char* c;
};

int main() {
    struct A aa[] = {{1, 1.1, "1.1.1"}, {2, 2.2, "2.2.2"}};
    int n = sizeof(aa) / sizeof(aa[0]);
    for(int i=0; i<n; i++) {
        printf("%d, %f, %s\n", aa[i].a, aa[i].b, aa[i].c);
    }

    return 0;
}

定义单个结构体可以struct A a = {1, 1.1, "1.1.1"};所以结构体数组,就是像上面那样写就好了。

需要注意的是,每个结构体里面的三个参数顺序必须跟结构体里定义的顺序一致。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-01-16
结构体里面弄一个构造函数.
第2个回答  2017-01-16
可以初始化,就像一般数组也可以初始化一样
第3个回答  2017-01-16
不能,使用{}形式赋值

定义一个结构体数组,可以在初始化里直接赋值吗?比如 struct a{ int d...
结构体定义是进行一种数据描述,不具备实例化的情况。只有在有具体的数据变量(实例,在C++k中也称对象)时,才可以对数据进行初始化。正确的写法为:struct a{ int d;}b[10]={0}; \/\/对具体的变量b数组进地元素初始化

如何对结构体变量进行初始化
在初始化结构体变量时候,既可以初始化其全部成员变量,也可以仅仅对其中部分的成员变量进行初始化。例如:struct Student { long id;char name[20];char sex;}a= {0};其相当于a.id=0;a.name=“”;a.sex=‘\\0x0’。仅仅对其中部分的成员变量进行初始化,要求初始化的数据至少有一个,其他没...

结构体数组怎么初始化
结构体数组在定义的同时也可以初始化,例如:struct stu{ char *name; \/\/姓名 int num; \/\/学号 int age; \/\/年龄 char group; \/\/所在小组 float score; \/\/成绩 }class[5] = { {"Li ping", 5, 18, 'C', 145.0},{"Zhang ping", 4, 19, 'A', 130.5},{"He fang",...

如何对结构体变量进行初始化?
也可以采取申明类型与定义变量分开的形式,在定义变量时进行初始化:student student1 = {10001,"zhangxin"} 。在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些...

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

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

C中结构体变量为全局变量或静态变量时才能初始化么?
你那本书虽然在2004年才出版,却不符合C89的规定,很是遗憾!不允许对局部动态的集合类型的对象(如结构体变量,数组)进行初始化,是担心效率太低,比较耗时,因为动态局部变量的初始化在每次进入函数时都要进行。ANSI制订C89标准时,考虑到在使用过程中确有对动态局部结构体(或数组)进行初始化的实际...

结构体数组初始化是什么意思?是把该数组里存的数据清空吗?
结构体数组和数组理论上是一样的,初始化是定义变量后的第一次赋值,如不赋值比如说:int x;printf("x=%d\\n",x);输出的会是不可预知的内容,其实我认为初始化就是第一次给变量赋值,赋值可以为空,但不能理解为清空。

请说明结构体初始化数据赋值的几种方式
结构体能自由组装数据,是一种很常见的数据打包方法。当我们定义一个结构体后,没有初始化就使用,就会使用到垃圾数据,而且这种错误很难发现。对于定义的任何变量,我们最好都先初始化。除了使用memset和ZeroMemory之外,有没有更简单的方法初始化呢?因为有时候每定义一个结构体,就使用一次memset,也会...

数据结构中结构体变量为什么要初始化?为什么之前讲c语言的时候结构体变...
结构体变量如果是局部变量,需要初始化,否则初值是随机的。 新型数据结构,可以用初始化函数来实现初始化。之前C语言应该也是一样。取决于结构体变量的使用位置,局部的应该初始化。

相似回答