知识点:

  1. 数组的几种初始化方式
    int cards[4] = {3, 4, 5 ,6};
    int cards[4]; // 所有元素初始化为0
    int cards[] = {3, 4, 5, 6}; // sizeof(cards) / sizeof(int) = 4
    // c++11新增
    int cards[4] {3, 4, 5, 6}; // 可以省略 = 
    int cards[4] {}; // 所有元素初始化为0
  2. 字符数组表示字符串
    char fish[] = "Bubbles"; // sizeof(fish) / sizeof(char) = 8 因为末尾自动补上了'\0'
  3. 字符串的输入
    char c1[10];
    char c2[10];
    cin >> c1; // hello wo
    cin >> c2; // rld
    cout << c1 << c2; // hello wo
    原因: cin 使用空白(空格、制表符和换行符)来确定字符串结束位置
    面向行的输入:
    1.getline() : 以回车作为输入结尾的标识
    char c1[10];
    char c2[10];
    cin.getline(c1, 10); // hello wo
    cin.getline(c2, 10); // rld
    cout << c1 << c2; // hello world
    getline()函数每次读取一行,通过换行符确定行尾,但不保存换行符。相反,他用空字符来替换换行符。
    2.get() : 与getline()类似,get()是istream类的另一个成员函数,它同样以回车作为输入结尾的标识,但get()并不再读取并丢弃换行符,而是将其留在输入队列中,所以应该在每次输入过后将换行符处理
    char c1[10];
    char c2[10];
    cin.get(c1, 10); // hello wo
    cin.get();
    cin.get(c2, 10); // rld
    cout << c1 << c2; // hello world
    注:cin在输入完成后也不会处理换行符,所以在cin后面接cin.getline()的时候,要再在前面加一个cin.get()!
  1. c++中的结构 struct

    struct student
    {
       char name[20];
       int number;
    };
    student st1;
    student st2; // c++
    struct student st3;
    struct student st4; // c
    // 如果在c语言中要想省去struct关键字,需要typedef
    typedef struct student{}student;
    //初始化:
    /*
    struct TreeNode {
     int val;
     struct TreeNode *left;
     struct TreeNode *right;
     TreeNode(int x) :
             val(x), left(NULL), right(NULL) {
     }
    };*/

    c++结构在c结构的基础上,增加了成员函数功能。不过这些高级特性通常被用于类中。

  2. 共用体(union)
    共同体是一种数据格式,能够储存不同的数据类型,但只能同时存储其中一种类型。
    用途之一就是可以节省空间。

    struct widget
    {
       char brand[20];
       int tyoe;
       union {
           long id_num;
           char id_char[20];
       }
    }
    ...
    widget price;
    ...
    if (price.type == 1)
     cin >> price.id_num;
    else
     cin >> price.id_char;
  3. 枚举(enum)

    enum spectrum {red, orange, yellow, green, blue, violet, indige, ultraviolet};
    spectrum band;
    band = spectrum(3); // green