關於使用 typedef 編寫型別以定義 const 時出現的問題

發布 科技 2024-08-16
6個回答
  1. 匿名使用者2024-02-01

    這不是誰取代誰的問題,typedef 沒有定義。 我認為可以這樣理解:你可以把typedef看作是乙個普通的定義,pstring相當於定義了string*型別的變數,然後pstring str就像複製乙個型別的變數作為pstring。

    const pstring ptr,首先psstring是乙個指標,所以ptr是乙個const指標,在定義它的時候必須初始化。

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

    它是 psstring 替換 string*

    對於你新增的問題,我進行了實驗,確實如你所說。 我不太了解,所以我又做了兩組實驗:

    1. 如果定義為define pstring string*,可以編譯(因為是直接替換的,所以和const string* pstr是一樣的),就是問題就是不能簡單地把typedef理解為替換,也就是define。

    2. 那麼typedef和define有什麼區別,我定義typedef const string* pstring; 也通過了。 也就是說,const pstring 編譯器不認為它是乙個型別(我不知道該怎麼想)。

    知道就是知道,不知道就是不知道,我看了一眼,發現這個知道:

    我不知道你是否明白。

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

    typedef string * pstring;

    如果使用 psstring 表示字串 * string * 是指向字串型別的指標,則使用 psstring 定義的 ptr 也是指向字串型別的指標。

    Pstring 是 string * 的另乙個名稱,只是為了記憶。

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

    請從右到左閱讀所有定義。

    typedef string *pstring;

    從右邊看,pstring 是指向字串物件的指標。

    const string * p;

    p 是指向 String 物件的指標,該物件是 const。 所以 p 是指向 const 字串的指標。

    string* const p;

    p 是 const,const 的指標,指向字串,所以 p 是指向字串的 const 指標。

    const string* const p;

    p 是 const,const 的指標指向 String,而這個 String 物件是 const,所以 p 是指向 const 字串的 const 指標。

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

    1) Typedef 可以宣告各種型別名,但不能用於定義變數。可以使用 typedef 來宣告陣列型別和字串型別,使用起來更方便。

    2) 使用 typedef 只會將型別名稱新增到現有型別,但不會建立新型別。

    3)當同一型別的資料(特別是陣列、指標、結構體、公共資源等資料)在不同的原始檔中使用時,通常使用typedef來宣告一些資料型別,將它們分別放在標頭檔案中,然後使用include命令將它們包含在需要用於提高程式設計效率的檔案中。

    4)typedef的使用有利於程式的泛化和可移植性。有時程式依賴於硬體功能,而 typedef 很容易移植。

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

    typedef int integer;使用識別符號整數指定 int 型別。

    typedef float real;指定 real 表示浮點型別。

    這樣,以下兩行是等效的:

    int i,j; float a,b;

    integer i,j; real a,b;在程式中,整數變數專門用於計數,計數可以用作整數型別名稱:

    typedef int count;指定 count 用於表示 int 型別。

    count i,j;將變數 i,j 定義為計數型別,即 int 型別在程式中將變數 i,j 定義為計數型別,使人們更容易一目了然地知道它們是用於計數的。 您還可以宣告結構型別:

    typedef struct 請注意,關鍵字 typedef 在 struct 之前使用,以指示已宣告新名稱。

    int month; int day; int year; }date;請注意,date 是新型別的名稱,而不是 struct 變數的名稱。

    宣告日期的新型別名稱表示上面指定的結構型別之一。 這樣就可以用日期定義變數:

    date birthday; date *p;p 是指向此結構型別資料的指標。

    它還可以進一步:

    typedef int num[100];將 num 宣告為整數陣列型別,包含 100 個元素 num n; 將 n 定義為包含 100 個整數元素的陣列。

    typedef char *string;將字串宣告為字元指標型別字串 p,s[10]; p 是字元指標變數,s 是指標肢陣列(有 10 個元素)。

    typedef int (*pointer)( 宣告指標指向指標日曆肢體型別的函式,該函式返回整數值 pointer p1,p2; p1 和 p2 是指標變數。

相關回答
3個回答2024-08-16

你可以寫下家人、朋友和老師的愛,以及他們如何善待你。

4個回答2024-08-16

十字架中央有乙個長的,乙個女孩把乙個母親f扔進去。

21個回答2024-08-16

根據階段,情書可分為三種型別。

一封寫給從未與你聯絡過的人的情書。 >>>More

4個回答2024-08-16

工作中的風電場。

翻轉。 >>>More

14個回答2024-08-16

鍾嘉欣現在唱的只有一首英文歌,非常好聽。 >>>More