麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

C語言中#define與typedef的互換細節詳解

2020-01-26 16:14:23
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

#include <stdio.h>
/*<---------           #define    string    char *            ---->*/
typedef   char *   string;      

int main(void)
{
   string   a[] = {"I", "like", "to", "fight,"},
   b[] = {"pinch,", "and", "bight."};
   printf("%s %s %s %s %s %s %s/n", a[0], a[1], a[2], a[3], b[0], b[1], b[2]);
   return 0;
}


用#define替換掉typedef的行,并且,已經給出的#define示例不能通過,但是,程序中只要添加一個字符,就可以了.

====================這個問題的解答===========================

有下面兩種定義pStr數據類型的方法,兩者有什么不同?哪一種更好一點?
typedef char* pStr;
#define pStr char*;

答案與分析:

通常講,typedef要比#define要好,特別是在有指針的場合。請看例子:
typedef char* pStr1;
#define pStr2 char *
pStr1 s1, s2;
pStr2 s3, s4;

在上述的變量定義中,s1、s2、s3都被定義為char *,而s4則定義成了char,不是我們所預期的指針變量,根本原因就在于#define只是簡單的字符串替換而typedef則是為一個類型起新名字。
上例中define語句必須寫成 pStr2 s3, *s4; 這這樣才能正常執行。

所以程序

復制代碼 代碼如下:

#define    string    char *;       
int main(void)
{
   string   a[] = {"I", "like", "to", "fight,"},
   *b[] = {"pinch,", "and", "bight."};   /*<--就是這里!!--*/
   printf("%s %s %s %s %s %s %s/n", a[0], a[1], a[2], a[3], b[0], b[1], b[2]);

   return 0;
}


==========================
確實很巧妙!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 日韩av在线网 | 国产高潮国产高潮久久久91 | 午夜视频在线免费观看 | av免费在线观看av | 国产永久免费观看 | 1314成人网 | 香蕉视频18 | 激情综合婷婷久久 | 久久91精品久久久久清纯 | 日本中文字幕久久 | 精品免费在线视频 | 国产在线精品一区二区夜色 | 国产一区精品在线观看 | 亚洲成人精品一区二区 | 国产亚洲黑人性受xxxx精品 | 亚洲成a人在线 | 国产一级午夜 | 91久久久久久亚洲精品禁果 | 性少妇videosexfreexxx片 | 日本一区视频在线观看 | 九九热精品在线视频 | 色播视频在线播放 | 精品欧美一区二区精品久久 | 亚洲第一精品在线 | 亚洲码无人客一区二区三区 | 久久久久免费精品 | 日日综合 | 特一级黄色毛片 | 免费久久久 | 久久精片 | 精品一区二区久久久久久久网精 | 特级黄色影院 | 人禽l交免费视频 | 曰韩黄色片| 在线视频 亚洲 | 国产资源在线播放 | 伦一区二区三区中文字幕v亚洲 | 久久男 | h视频在线免费观看 | 精品一区二区在线播放 | 日韩黄色片网站 |