int myValue;
int *pint = & myValue;
int ages[20];
int *pint = ages;
float myFloat;
int *pint = &myFloat; //非法
int myValue,*pint = &myValue;
下面的語句定義了一個陣列 readings 和一個指標 maker,maker 指標使用了 readings 陣列中第一個元素的地址進行初始化:double readings[50], *marker = readings;
當然,一個指標只能用已定義物件的地址來初始化。以下語句是非法的,因為使用了一個並不存在的物件地址初始化 pint:
int *pint = &myValue; // 非法
int myValue;
int *ptrToint = 0;
double *ptrToDouble = 0;
int *ptrToint = NULL;
float *ptrTofloat = NULL;
int *ptrToint = nullptr;
double *ptrToDouble = nullptr;
if ( p ! = nullptr ) { // 使用指標 P... }
if ( p != NULL ) { // 使用指標 P"... }
if ( p != 0 ) { // 使用指標 P... }
if (p) { // 使用指標 P... }
在 C++ 11 中,在變數定義的末尾放置一對空的大括號 {},即可初始化變數為其預設值。數位型別(例如 int、long 和 double)的預設值是 0,而指標型別的預設值則是 nullptr。因 此,以下定義語句:
int mylnt = 0;
double myDouble = 0.0;
int *ptrToInt = nullptr;
int mylnt = 0;
double myDouble = 0.0;
int *ptrToInt = nullptr;