程式設計 微知識 (七) i++與++i

i++與++i是不一樣的兩個東西:

i++:先使用i的值,再將i的值+1

++i:先將i+1,再使用i的值。

++i會比i++有效率,因為執行i++時,編譯器會需要產生出一個temp用來暫存i的植,指令也因此增加,也因此當反覆執行很多次的時候,++i的效率會比i++來的快。

本文以C++實作介紹。

 

...繼續閱讀 »

練習題(三)

給定兩個長度相同的字串,判斷是否能把其中一個字串的各個字母重組,使兩字串相同。

EX: 字串一為JWPZDJSTAC,字串二為WJDZASJPCT,此二字串相同;字串一為CADA,字串二為CCAD,此二字串不同。

本文以C++實作執行。

...繼續閱讀 »

程式設計 微知識 (六) 行內函式(inline function)

內嵌函數其實就是將一個function直接展開至程式碼當中。

內嵌函數,也就是在 function前加入inline這個關鍵字,其用意是加速程式的執行速度。經過inline所宣告的function會直接展開在程式碼裡面,展開後的程式碼就會直接存取該參數,省略了呼叫function的資源浪費。也就是好處是不用呼叫函式執行速度較快,缺點是程式會因此變大,通常會用在程式碼不多但是卻常被呼叫的函式,然後只有當編譯器的效益分析為有利的時候,inline的動作才會發生。

本文以C++實作介紹。

...繼續閱讀 »

有趣的範例(一)-洗撲克牌

基本的撲克牌分成四個花色,梅花(Clubs)、磚塊(Diamonds)、愛心(Hearts)、黑桃(Spades),以及一到十三共五十二張牌。如果加上鬼牌的話一副撲克牌有54張。這個範例是扣除鬼牌之後每次執行程式都會隨機產生五十二張牌。

本文以C++實作執行。

...繼續閱讀 »

氣泡排序法 Bubble Sort

氣泡排序法(Bubble Sort)是排序演算法的一種,其觀念是逐次比較相鄰的兩筆資料,然後根據排序條件交換(由小到大或由大到小),一直交換到資料排序完成為止。

本文以C++實作執行。

...繼續閱讀 »

字串的複製 strcpy 與 strncpy 的使用與實作

strcpy 是C語言的函式之一,來自C語言標準函式庫,定義於string.h,它可以複製以null 為結束字元的記憶體區塊到另一個記憶體區塊內。 由於字串在C 語言不是首要的資料型態,而是以實作的方式來替代,在記憶體內以連續的位元組區塊組成,strcpy 可以有效複製兩個配置在記憶體以指標回傳的字串(字元指標或是字串指標)。

本文以C++實作執行。

...繼續閱讀 »