(c primer Unit4 陣列和指標

2021-09-25 18:43:04 字數 2370 閱讀 9839

陣列是由型別名識別符號維數所組成的復合資料型別。

int array[4] = ;
1.陣列的維數:必須是值大於等於1的常量表示式。

2.陣列的初始化:與c語言相同

3.陣列的賦值:不允許陣列之間的直接複製和賦值

string s("hello c++");

string *p = &s; // &是取位址符

tip:理解指標的宣告語句時,建議從右向左閱讀。 

string *pstring;

/*該句把pstring定義為乙個指向string型別的指標變數*/

2. 儲存某個物件後面的另乙個物件 (不理解)

3. 0值,表示該指標不指向任何物件。(這個0值如果來自變數,那麼必須是const型別的變數

warning:沒有初始化的指標變數是十分危險的。   

一種特殊的指標型別,可以儲存任何型別物件的位址。但只支援幾種特定的操作,不允許通過void*型別的指標來操縱指向物件的值

string s = "hello, c++";

string *p1 = &s;

void* p2 = &s; // right

陣列的陣列名為指向陣列第乙個元素的指標。

1.c++11強制要求指向const型別的物件的指標也具有const性質。

const double pi = 3.14;

double *p1 = pi; // error

const double *p2 = pi; //right

2.這裡的const指明的是指標cptr指向的物件為const,而非cptr本身為const。

const double *cptr; // cptr may point to a double that is const
3.cptr所指向的物件是可以改變的,但是不可以通過cptr來改變其指向的物件的值。

*cptr = 42;  //error, cptr is a point to a const double
4.使用void*來儲存const物件的位址時,也必須使用const void*。

void *p1 = pi; // wrong

const void *p2 = pi; // right

5.關於第三點的重述,指向const物件的指標所指的物件的值並不一定是不可改變(好奇怪啊)。

int main()

/* ouput */

/*3.14

*/

int num = 0;

int *const p = #

這裡的p是指向int型別物件的const指標。

不可以改變const指標的值,但可以通過指標改變所指向的物件的值。

int main()

大量錯誤的**,在c語言書籍中有具體闡述,不再贅述。

c++使用newdelete表示式實現在自由儲存區中分配儲存空間。

只需指定陣列型別和維數,通過new返回新分配陣列的首位址。

int *p = new int[10]; // array of 10 uninitialized ints
類型別通過預設建構函式初始化,內建型別無初始化。

也可通過在後面加一對圓括號進行初始化。

int main()

/*output*//*0

*/

delete p;
int main()

; vectorvec(array, array + array_size);

for (vector::size_type i = 0; i < array_size; i++)

cout << vec[i] << endl;

return 0;

}/* output *//*0

1234

5*/

陣列和切片4

切片的遍歷和陣列一樣,也有兩種方式 1 for 迴圈常規方式遍歷 2 for range 結構遍歷切片 兩種方式都在下面的 裡 案例演示 func main slice arr 1 4 20,30,40 for i 0 i len slice i fmt.println 使用for range 方式...

4 陣列和方法(一)

一 一維陣列 陣列是同一型別的一組變數,陣列允許你通過同一名稱引用這一系列的變數,並使用乙個稱為 索引 或 下標 的數字來進行區分。陣列中包含的變數 又稱陣列的元素 具有相同的型別,該型別稱為陣列的元素型別。陣列的宣告 int number 一維陣列物件的建立 int number new int ...

C PRIMER之4 陣列和指標

1 陣列 陣列的維度必須為大於0的常量表示式 int a 3 函式體內的陣列,無初始化操作.函式體外的會初始化預設值.char b abc 會在後面新增乙個空字元.長度為4.不允許直接複製和賦值.長度是固定的.2 陣列操作 下標型別為size t 保護好避免越界 buffer overflow 3 ...