指標的起始設定

起始設定元是 = (等號) ,後面接著表示式,代表指標要包含的位址。 下列範例將變數 timespeed 定義為具有類型 double ,並將 amount 定義為具有 double的類型指標。 指標 amount 已起始設定為指向 total:
double total, speed, *amount = &total;
編譯器會將無下標的陣列名稱轉換成陣列中第一個元素的指標。 您可以透過指定陣列名稱,將陣列第一個元素的位址指派給指標。 下列兩組定義是相等的。 兩者都定義指標 student ,並將 student 起始設定為 section中第一個元素的位址:
int section[80];
int *student = section;
等於:
int section[80];
int *student = &section[0];
您可以透過在起始設定元中指定字串常數,將字串常數中第一個字元的位址指派給指標。 下列範例定義指標變數 string 及字串常數 "abcd"。 指標 string 已起始設定為指向字串 "abcd"中的字元 a
char *string = "abcd";
下列範例將 weekdays 定義為字串常數的指標陣列。 每一個元素都指向不同的字串。 例如,指標 weekdays[2]指向字串 "Tuesday"
static char *weekdays[ ] =
{
   "Sunday", "Monday", "Tuesday", "Wednesday",
   "Thursday", "Friday", "Saturday"
};

也可以使用求值為 0的任何整數常數表示式,將指標起始設定為空值,例如 char * a=0; ""或使用nullptr關鍵字。 這類指標是空值指標。 它未指向任何物件。

下列範例定義具有空值指標值的指標:

char *a = 0; 
char *b = NULL; 

C++ 僅限 C++11 的開頭。

char *ch = nullptr;

C++ 僅限 C++11 結尾。

相關資訊