帅周 发表于 2021-6-7 21:51:32

结构体数组

代码
#include<stdio.h>

struct Test
{
        int x;
};

int main(void)
{
        struct Test test;
        test = 1;

        printf("test = %d\n",test);

        return 0;
}

报错了{:5_104:}
why?

浮华染流年 发表于 2021-6-7 22:06:09

#include<stdio.h>

struct Test
{
      int x;
};

int main(void)
{
      struct Test test;
      test.x = 1;

      printf("test .x= %d\n",test.x);

      return 0;
}

万千只cnm 发表于 2021-6-8 09:03:54

你只选定了这个结构体没通过成员名访问呀

人中仙 发表于 2021-6-8 12:48:41

#include<stdio.h>
#include<stdio.h>

struct Test
{
    int x;
};

int main(void)
{
    struct Test test;
    //test = 1;结构体是一片空间内存,不是基本的变量类型,不能直接通过赋值进行操作
    test.x = 1; //这样是对结构体中的一个整型的成员进行赋值

    printf("test = %d\n",test.x); //同样,对结构体中的变量读取也需要指明是对结构体中的哪个成员进行读取

    return 0;
}

帅周 发表于 2021-6-8 17:56:50

人中仙 发表于 2021-6-8 12:48


为什么定义之后
printf("x = %d\n",test);
不会报错

人造人 发表于 2021-6-8 18:18:05

帅周 发表于 2021-6-8 17:56
为什么定义之后

不会报错

因为这是一个合法的C语言语句,当然不会报错

帅周 发表于 2021-6-8 21:12:03

人造人 发表于 2021-6-8 18:18
因为这是一个合法的C语言语句,当然不会报错

那为什么test定义时会报错

人造人 发表于 2021-6-8 21:47:27

帅周 发表于 2021-6-8 21:12
那为什么test定义时会报错

定义时报错?
哪行代码?

帅周 发表于 2021-6-8 21:56:16

人造人 发表于 2021-6-8 21:47
定义时报错?
哪行代码?

test = 1;

人造人 发表于 2021-6-8 22:15:44

帅周 发表于 2021-6-8 21:56


这不是定义,这是赋值语句
test 是一个结构体
等于号右边是整数 1
类型不一样,赋值当然报错了

#include <stdio.h>
#include <stdio.h>

struct Test {
    int x;
};

int main(void) {
    struct Test test;
    test = (struct Test){1};
    return 0;
}

帅周 发表于 2021-6-8 23:35:34

谢谢
页: [1]
查看完整版本: 结构体数组