如何設定 C 結構體的預設值?

發布 數碼 2024-08-03
24個回答
  1. 匿名使用者2024-01-31

    有幾種方法可以做到這一點:

    1 使用建構函式。

    在 C++ 中,struct 可以用作類,它還支援成員函式、建構函式和析構函式。 因此,您可以編寫相應的建構函式來實現自由初始化。

    2 定義後,根據成員變數的位置寫入初始化列表。

    如果結構測試中有成員 int a、char b 和 float c,則可以編寫初始化變數。

    struct test t1 = ;

    當初始化列表不完整時,省略的部分自動初始化為 0,即

    struct test t1 = ;

    和。 struct test t1 = ;

    等效。 3 某些編譯器支援顯示成員變數初始化,例如 g++。

    如。 struct test t1 = ;

    未涉及的變數初始化為 0並非所有編譯器都支援此方法,當存在跨平台要求時,應謹慎使用。

  2. 匿名使用者2024-01-30

    C++ 中的結構可以和類基本一樣,只是結構的預設許可權是公共的,類的預設許可權是私有的,完全可以為結構編寫建構函式,但在 C 中則不行。

  3. 匿名使用者2024-01-29

    預設值設定為 0

    sturct node aaa;

    直接使用 memset(&aaa,0,sizeof(node));

  4. 匿名使用者2024-01-28

    是的,結構與類相同,只是預設屬性是私有的。

  5. 匿名使用者2024-01-27

    它可以在建構函式中設定,這取決於具體情況,希望。

  6. 匿名使用者2024-01-26

    當只有乙個指標時,可以將其設定為 null

  7. 匿名使用者2024-01-25

    第乙個問題可以初始化。

    inflatable

    a=;集合至少需要 1 個元素來初始化列表,並且名稱、卷和價格的所有位元組都初始化為 0

    第二個問題結構包含字串

    a;可以使用初始化列表對其進行初始化。

    說充氣

    a=compilation 函式:字串類建構函式有乙個建構函式,可以使用 = 公式初始化結構。

  8. 匿名使用者2024-01-24

    第乙個問題,不能像這樣初始化,是需要的。

    inflatable

    a=;集合中至少需要乙個元素作為初始化列表,專業人員會將名稱、數量和價格的所有位元組初始化為 0。

    第二個問題是結構是否包含字串

    a;然後,您無法使用初始化列表進行初始化。

    換句話說。 inflatable

    a= 不會編譯成功,因為 String 類有乙個建構函式,並且具有具有建構函式的成員的結構不能用 = 初始化。

  9. 匿名使用者2024-01-23

    您可以直接在定義後分配乙個值,例如:

    struct player

    player1=;

    --也可以先定義,然後再分配,例如

    struct player

    player1,player2;

    player1=;

    player2=;

  10. 匿名使用者2024-01-22

    直接複製,或新增建構函式。

  11. 匿名使用者2024-01-21

    然後將物件宣告為 0

  12. 匿名使用者2024-01-20

    關鍵是。

    直譯器的編譯方法。 根。

    這是乙個字串

    是乙個類。 在變數的結構中。

    命名並執行兩者。

    初始化,例如 candybar

    snack=;

    這部分工作由程式編譯並直接分配,在程式原始碼中。 直接操作由編譯器完成,編譯器不呼叫字串

    構造 函式。 因此,記憶體中的字串品牌是乙個不確定的內容。

    而對於"mocha

    monch";在這種情況下,它是在程式執行時完成的,即字串建構函式。

    申請記憶體並完成作業。

    在編譯時,語法和型別沒有問題,所以它是正確的。

  13. 匿名使用者2024-01-19

    搜尋:C++ 希望將結構引數設定為預設引數。

  14. 匿名使用者2024-01-18

    在 CPP 中定義全域性變數。

    const struct a;

    然後在 h 中。

    extern struct a;

  15. 匿名使用者2024-01-17

    結構也可以具有建構函式,可以在使用預設建構函式在新陣列時初始化建構函式。

    如果希望成員具有初始值,則需要編寫建構函式,否則可以將 memset 初始化為 0。

    a[100];

    memset(&a, 0, sizeof(a));

  16. 匿名使用者2024-01-16

    1.編寫建構函式以提供預設值。

    您使用的是 C++ 語法,而在 C++ 中,結構和類的使用是相同的,只有細微的差異,因此它可以具有建構函式。

    2.分配你自己的值,以滿足你自己的初始需求,而不是建構函式方法

    struct mystruct

    class a

    mystruct a::mystruct[10][1] = 這對於在類外分配值很好。

    呼叫時:

    int main()

  17. 匿名使用者2024-01-15

    struct 有乙個建構函式...

  18. 匿名使用者2024-01-14

    這句話:結構結構。

    它本質上是一種 C 語言,建構函式本身如何並不重要。

    當然,沒有預設建構函式。

    它! 有害精神,建議阻止他!

  19. 匿名使用者2024-01-13

    如果使用 baistring,請在開頭新增 du include

    然後是結構工人

    以後,您可以像您一樣直接分配值。 如果要使用字串,則應在分配值時使用它。

    strcpy() 函式。

  20. 匿名使用者2024-01-12

    初始化 C++ 結構變數。

    與其他型別的變數一樣,您可以在定義結構變數時指定版本初始值。 如。

    struct student

    student1=;

    char 型別的賦值與字串的賦值相同,因為它是多個字元,因此可以用雙引號括起來。 如。

    shanghai"。

  21. 匿名使用者2024-01-11

    有兩種方法可以分配值,您需要選擇其中一種。

    1.一種是淺拷貝(shallow copy),這樣你的J和x陣列指向的是同乙個東西,修改x陣列會對結構的內容產生影響。

    malloc(sizeof(struct b));

    j = x;

    2.另一種是深度複製(deep copy),將內容移入其中。

    malloc(sizeof(struct b));

    j = malloc(sizeof(char)*20);

    strcpy(>j, x);

  22. 匿名使用者2024-01-10

    在C++中,結構是乙個特殊的類,在宣告陣列時已經呼叫了建構函式,即物件已經建立並且不能為空。 建議使用額外的元素計數變數來標識實際使用的結構數。

    或者向結構中新增乙個屬性,以確定該結構是否可用,並將其初始化為不可用。

  23. 匿名使用者2024-01-09

    將 null 迴圈到構成結構型別的各個物件感覺毫無意義,除非構成結構體的元素指向堆的指標可以節省一些空間。

  24. 匿名使用者2024-01-08

    以這種方式賦值結構沒有問題,但問題出在字串物件上,它不支援這種初始賦值。

    將 name 的定義更改為 char name[20],這很好。

相關回答
6個回答2024-08-03

C語言結構定義:struct是結構關鍵字,tag是結構的符號,member-list是結構成員的列表,它必須列出它的所有成員; variable-list 是此結構宣告的變數。 >>>More

22個回答2024-08-03

通過修改 main 方法中的語句來設定預設啟動窗體。 main 方法。 >>>More

7個回答2024-08-03

它是乙個帶函式的結構體,這是C++獨有的,在C語言的結構體中不能有函式|!! >>>More

5個回答2024-08-03

原因:因為你沒有在結構的末尾新增; ,那麼說明你的結構定義還沒有結束,那麼下面的主要功能就是你的結構了,所以會上報"定義中的型別過多"錯。 >>>More

9個回答2024-08-03

我感覺你身材走樣了! 實際上,我認為它應該是乙個建構函式! >>>More