C 學習之指標

2021-10-07 21:49:10 字數 2510 閱讀 4068

指標所佔的記憶體空間

空指標和野指標

const修飾指標

指標和陣列

指標和函式

指標配合函式和陣列綜合案例

記憶體的編號是從0開始的,一般用十六進製制數字表示,我們可以利用指標變數來儲存記憶體的位址

語法:資料型別 * 指標變數名 ;

例1:

#include using namespace std;

int main()

例1:

#include using namespace std;

int main()

例2:

#include using namespace std;

int main()

例1:

#include using namespace std;

int main()

空指標是指標變數指向的記憶體編號為0的空間,一般用於初始化指標變數,必須注意的是空指標指向的記憶體是不可訪問的

例1:

#include using namespace std;

int main()

執行例1**出現的空指標異常截圖:

野指標是指標變數指向了非法的記憶體空間

例1:

#include using namespace std;

int main()

例1執行結果報錯截圖:

const修飾指標有三種情況:

const修飾指標 常量指標

const修飾常量 指標常量

const既修飾指標,又修飾常量

常量指標:指標變數的指向可以修改,但是指標變數指向的值不能修改==

語法:const 資料型別 * 指標變數名; // 常量指標

例1:

#include using namespace std;

int main()

指標常量:指標變數的指向不能修改,但是指標變數指向的值可以修改

語法:資料型別 * const 指標變數名 ; // 指標常量

例1:

#include using namespace std;

int main()

指標指向的和指標指向的值都不能更改

語法:const 資料型別 * const 指標變數名 ;

例1:

#include using namespace std;

int main()

利用指標訪問陣列中的元素。

例1:

#include using namespace std;

int main() ;

int* p = arr; // 將陣列arr的位址賦值給指標變數p

cout << "正常使用for迴圈取出所有的值:" << endl;

for (int i = 0; i < (sizeof(arr) / sizeof(arr[0])); i++)

cout << "利用指標取出所有的值:" << endl;

for (int i = 0; i < (sizeof(arr) / sizeof(arr[0])); i++) // sizeof(arr) / sizeof(arr[0])計算出陣列長度

system("pause");

return 0;

}

利用指標做函式引數,可以修改實參的值

例1:在前面我們建立過乙個函式,交換兩個變數的值,在函式內部形參進行了交換,而在函式外部的實參沒有任何改變,利用指標作為形參,可以改變實參的值

#include using namespace std;

void swap01(int num1, int num2)

void swap02(int* num1, int* num2)

int main()

例1:

#include using namespace std;

void bubblesort(int* arr, int len) // 定義氣泡排序函式

} }}void printarr(int* arr, int len) // 定義陣列列印函式

}int main() ;

int len = sizeof(arr) / sizeof(arr[0]); // 獲取陣列的長度

cout << "氣泡排序前:" << endl;

printarr(arr, len); // 列印排序前的陣列

bubblesort(arr, len); // 進行氣泡排序

cout << "氣泡排序後:" << endl;

printarr(arr, len); // 列印排序前的陣列

system("pause");

return 0;

}

C 之指標學習

指標本身就是乙個物件,允許對指標賦值和拷貝,而且在指標的生命週期內它可以指向幾個不同的物件 指標無須在定義時賦初值。和其他內建型別一樣,在塊作用域內定義的指標如果沒有初始化,也將擁有乙個不確定的值。include using namespace std intmain here are the va...

C 學習筆記之 this指標

目錄this指標指向被呼叫的成員函式所屬的物件 include include using namespace std class person int main 0x61fe8c 1 0x61fe88 2 include include using namespace std class pers...

C 學習 物件模型之 this指標

在 c 中,每乙個物件都能通過this指標來訪問自己的位址。this指標是所有成員函式的隱含引數。因此,在成員函式內部,它可以用來指向呼叫物件。this指標針對物件。對於非成員函式,靜態函式和友元函式不能使用this指標,因為他們指標所有物件。this指標只針對某乙個物件。多繼承和多型的this指標...