第一種完整的寫法應該是int *p ,a; p=&a;也可以寫做int *p ;int a; p=&a;
第二種完整的寫法應該是int a;int*p=&a;
*是解引用符,&在此處是取地址符(它也可以作為邏輯運算子“且”也可以是“引用”),*作為修飾符使用,因此才有第一種情況的第一種寫法。指標儲存的是它所指向的物件的地址,切記這一點。
如果你真的想搞懂的話,可以先看《C++ primer》2.3節,再看一下我下面寫的這段程式碼,能看懂程式碼和執行結果的話,對指標和引用就會有一個清晰的認知。
#include
using namespace std;
/*變數
*指標
*指標的引用
*引用
*&與*運算子的作用
*它們在記憶體中的位置與內容 */
int main(){
int a = 2;宣告且定義,分配了空間
//extern int a;宣告而不定義,此時不分配空間,會報錯
int *b=&a;
int *&c=b;
int &d=a;
int *e=&d;
int &f=*b;
cout
第一種完整的寫法應該是int *p ,a; p=&a;也可以寫做int *p ;int a; p=&a;
第二種完整的寫法應該是int a;int*p=&a;
*是解引用符,&在此處是取地址符(它也可以作為邏輯運算子“且”也可以是“引用”),*作為修飾符使用,因此才有第一種情況的第一種寫法。指標儲存的是它所指向的物件的地址,切記這一點。
如果你真的想搞懂的話,可以先看《C++ primer》2.3節,再看一下我下面寫的這段程式碼,能看懂程式碼和執行結果的話,對指標和引用就會有一個清晰的認知。
#include
using namespace std;
/*變數
*指標
*指標的引用
*引用
*&與*運算子的作用
*它們在記憶體中的位置與內容 */
int main(){
int a = 2;宣告且定義,分配了空間
//extern int a;宣告而不定義,此時不分配空間,會報錯
int *b=&a;
int *&c=b;
int &d=a;
int *e=&d;
int &f=*b;
cout
cout