c語言討論 范型程式設計

2021-06-22 11:49:21 字數 1331 閱讀 1328

c語言中使用乙個變數之前要對其進行定義,那麼首先來看一下具體的乙個變數的定義。

1. inta=10; 

2. charchartest; 

3. floatb=1.0; 

4.regest doublex;

5.static int*int_ptr=null;

6.char words[10][10];

1.c語言中型別及其作用

首先看上述定義變數的方式

[儲存型別]基型別 變數名[初始化];

--由此可見變數儲存型別可不寫(預設為auto),初始化一顆不進行(有自己的預設機制,但對於一段程式來說在變數使用之前最好能得到它的初值),由於主題的關係,儲存型別不做深入**。

--好了下我們仔細研究一下,基型別的作用,及變數名的作用,其實在定義變數是就是為了能快是的找到某一儲存單元,以及對它的引用方式,

那麼變數名就代表了乙個位址,變數的基型別,就為引用變數提供了方法。 如

有此圖說明,對變數的引用方式,變數名代表變數首位址(x),有變數型別來確定引用其後的多少位(l),確定*(l+x)這一引用。

但就變數的基型別來說,並不只是來確定他該引用多少位,還有解析變數的方式

想想整形的儲存方式,和浮點型還真是不相同呢!

好了,回到主題,那麼如何進行范型程式設計呢。又有什麼意義。

假如你正在做乙個專案,裡面含有很多種型別

的資料,相同的資料還要使用某個函式,那我們就要為每一種型別的資料,寫一次這個函式,這樣可就太麻煩了,而且會使**長度不必要的增加。因此我們應該盡量將函式寫成對,同種基型別均可使用的,或者在某種特殊

的要求下對不同的資料也能進行該操作,(有待研究),好了我們的主要思想及手法就是

記憶體,記憶體資料複製+正確引用==范型程式設計主要思路

下面有簡單的列子說明,該函式實現了,同型別,資料(必須具有連續的儲存空間,且陣列這種特殊型別除外),的交換,如果應用到,排序中可是,排序函式實現范型

#include #include //包含memcpy

#include //包含malloc,

int swap(void* a,void* b,int size)

int main()

使用同乙個函式swap(void*,void*,int);

對基型別相同的各種型別實現了交換,

其他函式思想相同

范型程式設計 洗牌

在撲克牌遊戲中,每次遊戲開始都要求把54張牌重新排列一下,稱為洗牌。試編寫程式將一副撲克牌 用54個整數1 54表示 隨機洗好後,順序輸出54張牌的情況。4種方法來品味如何用stl解決問題 解法1 初始化乙個 vector,順序加入所有牌,即整數1 54。然後從容器中隨機抽取乙個加到另乙個vecto...

C 實踐參考 洗牌(范型程式設計)

專案2 洗牌 在撲克牌遊戲中,每次遊戲開始都要求把54張牌重新排列一下,稱為洗牌。試編寫程式將一副撲克牌 用54個整數1 54表示 隨機洗好後,順序輸出54張牌的情況。參考介面 參考解答 共4種,可作為程式閱讀,品味用stl解決問題的方法,必要時,請查詢相關手冊 解法1 初始化乙個 vector,順...

3種程式設計范型

計算機應用離不開編寫程式。按不同的思路和方法來編寫程式,就形成不同的程式設計范型。1956年,世界上第乙個高階語言fortran問世。50多年來,高階語言的程式設計范型大體經歷了3次演變,即過程式范型 物件導向程式設計范型與基於構件技術的程式設計范型。過程式程式設計范型遵循 程式 資料結構 演算法 ...