2023年12月18日 指標

2021-10-01 13:43:26 字數 1492 閱讀 3545

理解複雜型別指標,乙個複雜型別裡會有很多運算子,他們也像普通的表示式一樣,有優先順序,其優先順序和預算優先順序一樣。

從變數名起,根據運算子優先順序結合。

int p;

//p與int結合,這是乙個普通的整型變數

int*p;

//首先從p開始,先與*結合,所以說p是乙個指標,然後再與int結合,說明指標所指向的內容為int型。所以p是乙個返回整型資料的指標。

int p[3]

;//首先從p處開始,先與結合,說明p是乙個陣列,然後與int結合,說明陣列裡的元素是整型的。所以p是乙個由整型資料組成的陣列。

int*p[3]

;//首先從p處開始,先與結合,因為其優先順序比*高,所以p是乙個陣列,

//然後再與*結合,說明陣列裡的元素是指標型別,

//然後再與int結合,說明指標所指向的內容的型別是整型。

//所以p是乙個由返回整型資料的指標所組成的陣列。

int(

*p)[3]

;//首先從p開始,先與*結合,說明p是乙個指標,

//然後再與結合("()"的作用,改變了優先順序),說明指標所指向的內容是乙個陣列。

//然後再與int結合,說明陣列裡的元素是整型。

//所以p是乙個指向由整型資料組成的陣列的指標。

int*

*p;//首先從p開始,先與*結合,說明p是乙個指標,

//然後再與*結合,說明指標所指向的元素是指標,

//然後再與int結合,說明該指標所指向的元素是整型資料。

//由於二級指標以及更高階的指標極少用在複雜的型別中,所以後面更複雜的型別就不再考慮多級指標,最多一級指標,其他級以此類推

intp

(int);

//從p開始,先與()結合,說明p是乙個函式,

//然後進入()裡分析,說明該函式有乙個整型變數的引數,

//然後再與外面的int結合,說明函式的返回值是乙個整型資料。

int(

*p)(

int)

;//從p開始,先與指標結合,說明p是乙個指標,

//然後與()結合,說明指標指向的是乙個函式,

//然後再與()裡的int結合,說明函式有乙個int型別的引數,

//再與最外層的int結合,說明函式的返回值是乙個整數型別。

//所以p是乙個指向有乙個整型引數並且返回型別為整型的函式的指標。

int*(*

p(int))[

3];//從p開始,先與()結合,說明p是乙個函式,

//然後進入()裡面,與int結合,說明函式有乙個整型變數的引數,

//然後再與外面的*結合,說明函式返回的是乙個指標,

//然後到最外面一層,先與結合,說明返回的指標指向乙個陣列

//然後再與*結合,說明陣列裡的元素是指標,

//然後再與int結合,說明指標指向的內容是整型資料。

//所以p是乙個引數為乙個整型資料且返回乙個指向由整型指標變數組成的陣列的指標變數的函式

2023年12月18日 關於void

說到c就不得不提指標,指標和結構體兩個東西是c語言的靈魂。而一提到指標,有乙個比較特殊的,那就是void void 到底是怎樣的存在?include include intmain int b a char c char a 0 printf b 1 d n b 1 printf c 1 d n c...

2023年12月12日總結

今天用plsql進行pde檔案匯入時,提示表空間不存在,有兩個伺服器,從a伺服器匯出的pde檔案在b伺服器匯入表,在plsql選擇工具 匯入表,在pl sql developer標籤下的在建立表前打鉤,然後匯入檔案那選擇剛才匯出生成的pde檔案,按匯入,結果出錯,日誌如下 import starte...

2023年9月18日總結

這幾天各種綜合測評的事感覺狀態沒有自己想象中的好,當然這也不是自己不好好看部落格的理由。這幾天沉迷於數論中無法自拔,又找了一些容斥定理的東西,找了乙個總結性的部落格,然後前幾道還好,後來有一道組合數的題卡了我兩天,今天上概率論的時候突然恍然大悟。題意是 給出乙個方程 x1 x2 x3 x4 x5 x...