C語言指標整理2

2021-10-09 10:00:46 字數 2292 閱讀 1458

例題:編寫程式把乙個陣列中的所有內容前後顛倒.比如陣列中原有內容是1 2 3 4 5;顛倒後內容是5 4 3 2 1;要求使用指標編寫程式;

//顛倒陣列內容

#include

void

main()

,num =0;

int*p_start = arr,

*p_end = arr +4;

while

(p_start < p_end)

for(num =

0;num <=

4;num++

)printf

("\n");

}

//在函式裡實現陣列內容的前後顛倒1

#include

void

reverse

(int arr,

int size)

}void

main()

,num =0;

reverse

(arr,5)

;for

(num =

0;num <=

4;num++

)printf

("\n");

}

注:讓被呼叫函式使用呼叫函式的陣列,可通過陣列作形參的方法.

實現跨函式使用儲存區方法;陣列作形參(本質由指標實現)、使用靜態區域性變數;

//被呼叫函式使用呼叫函式儲存區,使用指標型別形參

#include

void

reverse

(int

*p_num,

int size)

//被呼叫函式

}void

main()

//呼叫函式

,num =0;

reverse

(arr,5)

;for

(num =

0;num <=

4;num++

)printf

("\n");

}

//跨函式使用靜態區域性變數

//呼叫函式使用被呼叫函式靜態區域性變數,使用指標型別的返回值

#include

int*

func

(void

)void

main()

總結:實現跨函式使用儲存區均需要通過指標才能實現.

注:跨函式使用儲存區必須遵守生命週期的規則,生命週期不允許情況是不能跨函式使用儲存區的.

練習:編寫函式把主函式中的兩個變數內容交換.

//交換儲存區內容練習

#include

void

swap

(int

*p_num,

int*p_num1)

intmain()

宣告指標變數的時候可以使用const關鍵字

如果const關鍵字寫在型別名稱前就表示:

不可以通過這個指針對**儲存區進行賦值,

但是可以對指標本身的儲存區進行賦值.

#include

void

main()

當跨函式使用儲存區的時候,如果儲存區的擁有者不希望別的函式修改自己的儲存區,

就應該採用上述辦法在宣告指標的時候加const關鍵字.

注:當跨函式使用儲存區的時候,盡量在指標宣告前使用上述方法增加const關鍵字.

#include

//const int *p_num,加const就不會修改陣列裡面的數

void

print

(const

int*p_num,

int size)

printf

("\n");

}void

main()

;print

(arr,5)

;}

如果宣告指標時把const關鍵字加在指標變數名稱前,

就表示不可以對指標本身的儲存區做賦值,但是可以對**儲存區做賦值.

#include

void

main()

C語言指標整理

記憶體是按照位元組編址的,所以它的定址單位是位元組 byte 而乙個位元組又有是由8位 bit 的0或1組成。所以這樣的話4gb記憶體的定址空間就從0x00000000到0xffffffff,總共有 明白記憶體位址後,指標實際上就是記憶體位址,指標變數則是儲存指標的變數,也即是儲存了記憶體位址。下面...

整理C語言指標

指標的靈活運用使得c語言更加強大,指標是c語言中十分重要的部分,可以說指標是c語言的靈魂。當然指標不是萬能的,但沒有指標是萬萬不能的,有些操作沒有指標是辦不到的,如動態記憶體分配。鑑於學習指標的必要性,好好整理一下哈哈哈 1 指標 我們使用的計算機記憶體為8g,系統為了更好地管理我們的記憶體,就為記...

c語言指標知識整理

謹以此文送給初入程式設計坑的女票梁童鞋。目錄 基本概念 位址和指標的關係 指標操作 指標運算 指標與陣列 指標與一維陣列 指標與二維陣列 指標陣列 指標 是指向另一變數在記憶體中位置的位址。在程式中定義乙個變數,進行編譯時就會給這個變數在記憶體中分配乙個位址,通過訪問這個位址即可以找到所需變數,這個...