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次演變,即過程式范型 物件導向程式設計范型與基於構件技術的程式設計范型。過程式程式設計范型遵循 程式 資料結構 演算法 ...