2020年5月3日 星期日

C 語言 - struct array 初始化 ( Initializing array of structures )

初始化 struct array

    struct student
    {
        char* name;
        int grade;
        int id;
    };

1. 依照當初宣告的順序

    struct student myStudents[] = {
        {"Henry", 3, 1},
        {"Marry", 3, 2}
    };

1. 依照當初宣告的名子

    struct student myStudents[] = {
        {.id = 1, .grade = 3, .name = "Henry"},
        {.id = 2, .grade = 3, .name = "Marry"}
    };

Output

  printf("ID : %d-%d\tName : %s\n", myStudents[0].grade, myStudents[0].id, myStudents[0].name);
  printf("ID : %d-%d\tName : %s\n", myStudents[1].grade, myStudents[1].id, myStudents[1].name);

  // ID : 3-1        Name : Henry
  // ID : 3-2        Name : Marry


參考資料 :
https://stackoverflow.com/questions/18921559/initializing-array-of-structures

Related Posts:

  • C 語言 - function pointer 函數指標 function pointer 概念     基本上有 data 的 pointer 就會有 function 的 pointer。 正確的 ( 回傳 int 的 function ) int (*pfi)(); 錯誤的 ( 回傳 int pointer 的 function ) int *pfi(); function pointer 宣告     利用 typedef,… Read More
  • C 語言 - malloc、free 與 calloc malloc 跟 free     一般來說要將函式結果回傳是不能用 pointer,因為一旦函式結束 stack 的空間就會被釋出,所以 pointer 會指向的資料是危險的。這時就會先動態地宣告一個位址給 pointer,但這類的記憶體會被存放在 heap 而非 stack,所以開發者必須自行釋放。 pointer.c void showMalloc(int poi… Read More
  • C/C++ - 左值、右值 ( lvalue、rvalue )lvalue、rvalue 基本概念 左值 (lvalue) : 一個佔據某個特定記憶體的值。 右值 (rvalue) : 一個 expression 結束後就消失的值。 基本上這兩個定義包含了全部的值,非左即右,非右即左。 int var = 4; // var 參數佔據記憶體 = lvalue 4 = var; // 4 不佔據記憶體 = rvalue (var + 1) = 4; // var … Read More
  • C/C++ - Function Pointer 應用 CallBack FunctionFunction Pointer 應用 CallBack Function     有了 Function Pointer 就意味著,Callback Function 能被實現。     Callback Function : A 跟 B 講 "看到 C 就打電話給我" 打電話給 A = Callback Function     main.cpp ( A ) … Read More
  • C 語言 - sprintf / snprintf sprintf (char *s, const char *format, ...)     C 語言並沒有其他語言方便的 container 去作字串轉換,所以 sprintf 就顯得強大許多。原理就是 printf 但輸入到字串。但會有 overflow 的 issue 產生。 int main() { char str[5]; sprintf(str, "ABC"); … Read More

0 意見:

張貼留言

Popular Posts