c primer plus復合型別之指標2

2021-07-30 20:46:31 字數 820 閱讀 9347

使用new建立動態結構

在執行時建立陣列優於在編譯時建立陣列,對於結構亦如此。可以在程式執行時為結構分配所需要的空間,通過使用new運算子實現。

建立步驟分兩步進行:

1:建立動態結構:需要同時使用結構型別和new運算子。例如,建立乙個未命名的inflatable型別,將其賦值給指標,

inflatable* pt = new inflatable ;

這種句法和c++內建型別用法相同。

2:訪問成員變數:有兩種方法訪問成員變數,

①建立動態結構時,不能使用成員運算子來訪問,因為此時結構沒有名稱,只是知道它的位址而已。c++為這種情況提供了專門的運算子:箭頭運算子(->)。該運算子由連字元和大於號組成,可用於指向結構的指標來訪問成員變數,例如,

pt->price是被指向結構的price成員

②另一種訪問成員變數的方法是,(*pt).price方式,*pt是被指標指向的值--結構的本身,由於*pt是乙個結構,因此,(*pt).price是該結構的price成員。

下面是建立動態結構和訪問成員變數的示例:

#include using namespace std;

struct inflatable

;int main()

輸出:

enter name of inflatable:

fhenter volume of inflatable:

1.4enter price of inflatable:

27.99

《C Primer Plus》 復合型別

typename arrayname arraysize 要求arraysize在編譯是已知,不能是變數。陣列作為由基本型別組成的復合資料型別,arrayname要強調是對應基本資料型別組成的陣列 特定陣列 通過下標或索引單獨訪問各個元素 可能引發陣列越界的問題,int a 20 容易錯誤訪問a 2...

c primer plus復合型別之指標

指標是乙個變數,其儲存的是值的位址,而不是值本身。了解 在討論指標之前,我們先看一看如何找到常規變數的位址,只需對變數應用位址運算子 就可以獲得他的位置,例如 int cups 6 double donuts 4.5 cout cups value 程式輸出 cups value 6 and cup...

c primer plus 復合型別之陣列

編譯器會把陣列名轉換為乙個指標常量,是陣列中的第乙個元素的位址,型別就是陣列元素的位址型別,如 int a 10 陣列名a若出現在表示式中,如int p a 那麼它就轉換為第乙個元素的位址,等價於int p a 0 只有兩種情況下例外 第一種是對陣列名使用sizeof運算子 sizeof a 這將會...