C 基礎程式設計 07 指標

2021-10-14 08:00:33 字數 3100 閱讀 3899

7.5 const修飾指標

7.6 指標和陣列

7.7 指標和函式

7.8 指標、陣列、函式

記憶體編號是從0開始記錄的,一般用十六進製制數字表示。

可以利用指標變數儲存位址。

指標變數定義:資料型別 * 指標變數名;

指標變數,存放的是位址。&變數名是取變數的記憶體位址。*指標變數名是取指標變數對應的記憶體中的資料。

#include

using

namespace std;

intmain()

指標也是資料型別,那麼這種資料型別佔多少記憶體空間呢?

在32位作業系統下,不管是什麼型別的指標,都是佔四個位元組的空間

在64為作業系統下,不管是什麼型別的指標,都是佔八個位元組的空間

#include

using

namespace std;

intmain()

空指標:指標變數指向記憶體中編號為0的空間

用途:初始化指標變數

注意:空指標指向的記憶體是不可以訪問的。0-255之間的記憶體編號是系統占用的,不可以訪問。

#include

using

namespace std;

intmain()

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

#include

using

namespace std;

intmain()

空指標和野指標都不是我們申請的空間,因此不要訪問

const修飾指標有三種情況:

(1)const修飾指標——常量指標

例const int *p=&a;

特點:指標的指向可以修改,但是指標指向的變數的值不可以修改

int a=10;

int b=20;

const

int*p=

&a;*p=20;

//錯誤:指標指向的值不可以修改

p=&b;

//正確:指標的指向可以修改

(2)const修飾常量——指標常量

例 int * const p=&a;

特點:指標的指向不可以修改,但是指標指向的變數的值可以修改

int a=10;

int b=20;

int*

const p=

&a;*p=20;

//正確:指標指向的值可以修改

p=&b;

//錯誤:指標的指向不可以修改

(3)const既修飾指標又修飾常量

例 const int * const p=&a;

特點:指標的指向不可以修改,指標指向的變數的值不可以修改

int a=10;

int b=20;

int*

const p=

&a;*p=20;

//錯誤:指標指向的值不可以修改

p=&b;

//錯誤:指標的指向不可以修改

舉例:

#include

using

namespace std;

intmain()

作用:利用指標訪問陣列中元素

#include

using

namespace std;

intmain()

; cout <<

"利用陣列下標訪問陣列中第乙個元素為:"

<< arr1[0]

<< endl;

//利用陣列下標訪問陣列中的元素

int* p = arr1;

//arr1為陣列的首位址

cout <<

"利用指標訪問陣列中第乙個元素:"

<<

*p << endl;

p++;//讓指標向後偏移四個位元組(因為本身建立的是int型別的指標(4位元組))

cout <<

"利用指標訪問陣列中第二個元素:"

<<

*p << endl;

//2.利用指標遍歷陣列

double arr2=

;double

* p2 = arr2;

for(

int i =

0; i <

sizeof

(arr2)

/sizeof

(arr2[0]

); i++

)}

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

#include

using

namespace std;

void

swap1

(int p,

int q)

void

swap2

(int

*p,int

*q)int

main()

案例描述:封裝乙個函式,利用氣泡排序實現對整型陣列的公升序排序

#include

using

namespace std;

//封裝乙個函式,利用氣泡排序實現對整型陣列的公升序排序

void

bubblesort

(int

*q,int len)

//引數為陣列的首位址

p++;}

}}intmain()

;int len =

sizeof

(arr)

/sizeof

(arr[0]

);bubblesort

(arr,len)

;for

(int i =

0; i)}

C 基礎入門 07指標

指標的作用 可以通過指標間接訪問記憶體 指標變數定義語法 資料型別 變數名 示例 int main 指標變數和普通變數的區別 總結3 對指標變數解引用,可以操作指標指向的記憶體 提問 指標也是種資料型別,那麼這種資料型別占用多少記憶體空間?示例 int main 總結 所有指標型別在32位作業系統下...

C 基礎(1) 指標

三.指標使用 四.函式和指標 五.const 和指標 指標是另外一種型別的復合型別,復合型別是指基於其它型別定義的型別 意思是說指標是指向什麼型別,那麼指標本身就是什麼型別 指標其實就是程式資料在記憶體中的位址,而指標變數是用來儲存這些位址的變數 記憶體是乙個很大的,線性的位元組陣列。每乙個位元組都...

c語言程式設計(5)指標

指標是 c 語言中乙個重要的概念,也是 c 語言最精彩的部分。正確而靈活的運用它,可以是程式簡潔 緊湊 高效。指標變數是一種特殊的變數,它存放的不是資料,而是另一種變數的位址。這個存放資料的變數被稱為指標變數所指向的目標變數。由於通過指標變數中的位址可以直接訪問它指向的目標變數,常把指標變數簡稱為指...