鐵之狂傲

 取回密碼
 註冊
搜尋

切換到指定樓層
1#
25鐵幣

typedef int *NEW;
NEW t;

int *t;

請問
這兩種在變數上的意義有何不同?

我用Dev C++試過,好像沒什麼不同,請知道的人解釋一下

最佳解答

turnX 檢視完整內容

沒什麼不同,難道你喜歡把程式寫長一點? 每次遇到節構便寫這麼長 其實這在於個人撰寫的喜好,上面三種方式都是一樣的意思,並無不同 而且照你說的問題的確是有一個不同 如果直接宣告的話,當你宣告兩變數的指標 這一個就不知道是否是你想要的不同 [ 本文最後由 turnX 於 07-7-14 08:42 PM 編輯 ] ...
 
進入數學版  滿月祭III相簿1  2
轉播0 分享0 收藏0

回覆 使用道具 檢舉

原文由傲月光希 於 07-7-14 03:49 PM 發表
我想問的並不是typedef的用法
我想知道先把一個結構或型態定成 *識別字在宣告變數
跟直接宣告一個指標有啥不同


沒什麼不同,難道你喜歡把程式寫長一點?
每次遇到節構便寫這麼長
  1. struct NODE{
  2.       int x;
  3.       struct  NODE * next;
  4. };

  5. struct NODE * node;

  6. /////////////////////////////////////////////

  7. typedef struct _node{
  8.       int x;
  9.       struct _node * next;
  10. }NODE;

  11. NODE * node;

  12. /////////////////////////////////////////////

  13. typedef struct _node{
  14.       int x;
  15.       struct _node * next;
  16. }NODE;

  17. typedef NODE * pNODE;

  18. pNODE node;
複製代碼

其實這在於個人撰寫的喜好,上面三種方式都是一樣的意思,並無不同


而且照你說的問題的確是有一個不同
如果直接宣告的話,當你宣告兩變數的指標

  1. int *a,b; //b並不會是 int *
  2. int * a, *b; //才正確

  3. 如果你使用了

  4. typedef int * pINT;

  5. pINT a,b;  //這樣a,b都是pINT(int *) 你看這樣的差異有何不同
複製代碼


這一個就不知道是否是你想要的不同

[ 本文最後由 turnX 於 07-7-14 08:42 PM 編輯 ]
 

回覆 使用道具 檢舉

typedef是用來自定變數或型態
知道其用法的話,應該是沒有疑問的對於上述兩種寫法
 

回覆 使用道具 檢舉

我想問的並不是typedef的用法

我想知道先把一個結構或型態定成 *識別字在宣告變數

跟直接宣告一個指標有啥不同
 

回覆 使用道具 檢舉

你需要登入後才可以回覆 登入 | 註冊

存檔|手機版|聯絡我們|新聞提供|鐵之狂傲

GMT+8, 25-1-30 13:28 , Processed in 0.089965 second(s), 20 queries , Gzip On.

回頂部