C/C++ Q&A

1. typedef 與 #define 差異?

typedef 是用來定義一個新的資料型態名稱,而 #define 是定義巨集,但編譯器只是用來取代。

ex.

typedef char char_1; // 定義一個新的資料型態名稱,從此多了一個型態。

#define char_2 char; //定義了一個 char 型態,往後遇到 char_2 型態的變數都認為是 char。

2. *& reference to pointer 用意

#include <iostream>
char *str1 = "Hello";
char *str2 = "World";
char *ptr = str1;
char *&rptr = str1;
rptr = str2;
std::cout << ptr << str1 << std::endl;

上面程式會輸出 "Hello World",因為 rptr 是一個 char 指標的『參考』(rptr 是 str1 的參考)。

Leave a Reply

Your email address will not be published. Required fields are marked *