关闭

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

769人阅读 评论(0) 收藏 举报
分类:
结构体:
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.既然相同类型的结构体变量直接赋值操作,那么结构体变量就可以作为函数参数和返回值来使用了,作为参数传递时,将结构体整体赋给相同类型的形参,也算是对形参的赋初值了,这样为什么也可以呢?
其实,这俩是同一个问题。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1040921次
    • 积分:18215
    • 等级:
    • 排名:第522名
    • 原创:741篇
    • 转载:522篇
    • 译文:0篇
    • 评论:106条
    最新评论