嵌入式 关于结构体变量赋初值…

结构体:
C/C++ code?
1
2
3
4
5
typedef struct{
    char mark;
    int score;
    int id;
}test_t;


1.结构体变量可以整体初始化,但是不能整体赋初值。

C/C++ code?
1
2
3
struct test test1 = {1,’B’,80.5};  //整体初始化。√
struct test test1;       //结构体变量的声明
test1 = {1,’B’,80.5};    //整体赋初值。×

2.相同类型的结构体变量之间是可以直接进行赋值操作的。

那么,下面这段程序怎麽解释?下面的操作是可以的。
C/C++ code?
1
2
3
4
5
6
7
typedef struct{
      int score;
      int id;
  }test_t;
    test_t test1 = {90, 200902}; 
    test_t test2; 
    test2 = test1;

 其中
C/C++ code?
1
2
3
test_t test1 = {90, 200902};  //定义(声明+初始化)
    test_t test2;   //声明
    test2 = test1;  //相同类型的结构体变量直接赋值操作,也是对test2的赋初值操作

test2 = test1; 
问题1.这里是对test2的赋初值,这样为什么就可以了呢?这里面涉及到了什么问题?
问题2.既然相同类型的结构体变量直接赋值操作,那么结构体变量就可以作为函数参数和返回值来使用了,作为参数传递时,将结构体整体赋给相同类型的形参,也算是对形参的赋初值了,这样为什么也可以呢?
其实,这俩是同一个问题。

你可能感兴趣的:(嵌入式 关于结构体变量赋初值…)