。
指針變量是存放指針(某個變量地址)的變量,。
;這幾句話對理解指針非常有幫助。
c = *pointer = &c;
;
cout << c << endl; cout << *pointer << endl; cout << hex << &c << endl; cout << pointer << endl; cout << << endl;
#---------------------------------------------------------------------------------#
指針基類型的作用:當用指針遍歷時,+1等於幾個byte取決與指針基類型;
;
#---------------------------------------------------------------------------------#
數組與指針
指向數組第一個元素的指針。
是指向數組第一個元素的指針,即a相當於&a[0];
是"指向數組"的指針,將跨越16個字節;
了一級;
是數組的第一個元素a[0], 即*a等價於a[0];
了一級;
#include<iostream><iomanip> a[] = {,,,<< hex << a << endl; cout << &a << endl; cout << &a+ << endl; cout << *(&a) << endl; cout << *(&a)+ << endl; }
這是數組a在內存中的存放形式,非常有助於理解。
;
#include<iostream><iomanip> a[][] = {{,,,},{,,,},{,,,<< hex << a << endl; cout << &a[] << endl; << a+ << endl; cout << &a[]+ << endl; << *a << endl; cout << a[] << endl; cout << &a[][] << endl; << *a+ << endl; cout << a[]+ << endl; cout << &a[][]+ << endl; << &a+ << endl; }
指向數組第一個元素的指針。,可能是一個小數組(如上例);
了一級;
的一級;
#---------------------------------------------------------------------------------#
指針用作函數返回值時,必須保證!
#include<iostream> * value1 = & * value2 = & *p, *==<< *p << endl;
解決辦法: 將局部變量變為即可。或者也可以設為全局變量(不過這明顯不是個好主意)。
* value1 = &
參考文獻