函式指標學習過程的一些總結

2021-09-06 10:13:37 字數 704 閱讀 8255

#函式指標:

int gi(void)

{cout<<「haha」<##**這樣寫能夠呼叫函式:

int (*a)();

a=gi;

a();

##多重指標:

int (*a)();

a = gi;

如果這一段**:下面**執行時就會在注釋的**那裡奔潰。

int (**c)();

*c=gi ; //奔潰是在這裡產生的

(*c)();

當使用多級指標時,比如二級指標,如果二級指標沒有預先指向一級指標,直接呼叫二級指標給一級指標賦值,則會導致程式奔潰。

下面加入列印,沒有發現什麼線索。這個問題以後再討論。

數值變數轉換為指標:

ul 是typedef unsigned long後得到的。

ul i=(ul &)gi; //這樣型別轉換下面不能轉換回來,函式指標會訪問越界造成程式奔潰。

i= (ul)gi; //這樣做型別轉換下面可以轉換回來,可以正常訪問程式。

((int(*)())i)();

除了unsigned long之外的其他資料型別都不能完成儲存指標數值的工作。unsigned char(int),char(int)

等應該是由於資料大小本省只有不超過四位元組,所以不能儲存全部資料。而double,float等可能是由於資料型別的儲存資料方式比較特殊,所以在編譯階段就會報錯。

指標的一些總結

2016年9月14日 指標陣列和陣列指標 指標陣列是指 陣列元素都是指標 int ptr 5 int a 2,b 3,c 6,p,q p a q b ptr 0 a 存入的是a的位址 ptr 1 b ptr 2 c cout ptr 0 ptr 0 endl cout ptr 1 ptr 1 end...

函式指標等的一些用法總結

int tmain int argc,tchar argv template include stdafx.h include include include using namespace std c 寫檔案和讀檔案 int main ifstream in d out1.txt if in.is...

關於指標的一些總結

指標和陣列一樣,都是基於其它型別的。指標的宣告 int p updates 運算子兩邊的空格是可選的。對每個指標變數命名,都需要乙個 變數名,為取址,它的值為變數的位址 32位 指標變數,為指標儲存的位址所儲存的值。可以通過改變它來改變。malloc 可以分配記憶體,但c 更好的方法是使用new。i...