目前日期文章:200909 (24)

瀏覽方式: 標題列表 簡短摘要

當你按下了  xcopy /? 時,將會出現一大票的說明,在此我就不再把說明整個 PO 上來,我只介紹基本使用及常用的幾個參數

1. xcopy "來源路徑"  "目的路徑"

Edison 發表在 痞客邦 留言(2) 人氣()

之前,有人問我有沒有辦法寫資料夾加密碼的程式出來,那時候我直覺是:我辦不到!!我對Windows登入檔不熟,而Linux系統我是完全沒碰過的人,不管是在哪個OS,我直覺我寫不出來!

後來很巧妙的,又有人問我有沒有辦法改變資料夾的背景圖,那時候我只知道用desktop.ini可以用,但是偏偏不知道怎麼用,於是我用上了MSDN去查了desktop.ini是在幹嘛的。那時候我的OS已經是XP了,說實在的,desktop.ini幾乎是存在於 WinXP 以前的東西,裡面有很多我試了都沒作用(當然也可能是我測試失敗),像是InfoTip、NoSharing等,這些在WinXP裡面都沒有作用。不過,卻讓我試到一個好玩的東西。而最近,在因緣際會下瀏覽了一位高人的網誌,所以發了這篇小小點一下當初我是怎麼做到資料夾加密的功能。由於這個加密的技巧我使用的不是很正統,中間可能有一些動作會讓人覺得非常危險,所以這裡不詳述,只介紹 desktop.ini 這塊就好。

Edison 發表在 痞客邦 留言(6) 人氣()

在講虛擬記憶體的時候,還是習慣先說什麼叫記憶體(memory)..

早期的軟體工程師真的非常硬,因為他們可以用的記憶體只有 32 MB(跟現在 C Langue 的 stack size 一樣),所以程式要使用非常多的技巧,如 Stack、折合...等一堆技巧,將程式碼疊了又疊,疊了再疊,疊到最後希望執行的時候能塞到小小的 32MB 的記憶體中。 

Edison 發表在 痞客邦 留言(7) 人氣()

指標特輯的介紹到此告一段落,其中我所介紹的大多都是用 C 語法去寫,部份很重要的我也附上 src code,其實還有一個課題是交給各位有心想學的 - 如果你真的聽得懂、看得懂的話,請試著把所有的例子都想成是 char* CharPtr,那麼你將會再更上一層..最後,將指標特輯的內容整理附上,請參閱...

01_指標初學請進- 指標與位址

Edison 發表在 痞客邦 留言(4) 人氣()

這種錯誤常有人會犯:在副函式裡面使用指標配置了一個新的記憶體空間,最後把這個指標傳回給主程式。為什麼不行?如果這個問題不知道答案的話,請回到 CallByValue 詳細看一遍再回來看解說...

先看以下的 code 再做說明

Edison 發表在 痞客邦 留言(2) 人氣()

關於這個問題之前有不少人提過,只是換個型式又出現而已。這部份沒有想像中那麼難,只是一樣要拿個紙筆畫一下圖就是了。這次我不多說,大家仔細看範例還有執行結果就知道是要幹嘛的了

1. 原始碼

Edison 發表在 痞客邦 留言(1) 人氣()

在 09_二維指標與陣列 - 動態配置 [m][n] 陣列 中我們有提到

如果每 malloc 一份 memory 但卻沒有釋放,

Edison 發表在 痞客邦 留言(1) 人氣()

在進入這階段時,請先確定前八個階段都確定會了再下來會好些。另外,有篇文章請先看過...

[console] 一維陣列與指標

Edison 發表在 痞客邦 留言(5) 人氣()

對於之前”指標特輯”的前三篇文,在程式中讓人感覺實用意義並不大,接下來要說的全都是重點,如果前三篇文沒有看懂的人,請先回去看懂吧。

1. 為什麼要用動態記憶體:一般我們使用陣列時,你不可以隨時改變陣列的大小,陣列的大小在宣告時就已經確定。所以不可能會有像以下的程式碼出現

Edison 發表在 痞客邦 留言(3) 人氣()

現在,要為各位介紹CallByReference進行SWAP的做法。先聲明,CallByReference是在C++才有的概念,不過由於現在Complier幾乎沒有單獨支援C不支援C++的, 所以就算用C語言去寫CallByReference還是可被接受。

我們前面有提過CallByValue和CallByAddress,不管是哪種方法,OS都會再次配置副函式引數所需的記憶體空間,但CallByReference是非常特別的方法,OS是直接跑到主函式a, b的位址直接進行運算,並沒有再配置額外的記憶體。所以也有人說,使用CallByReference的速度會比較快。CallByReference的寫法大致如下:

Edison 發表在 痞客邦 留言(3) 人氣()

接下來的這個其實不是我要說明,而是留給各位思考,這個問題並不會太難或是太複雜...現在再次考慮 SWAP_A 的副函式,只是我寫的方式換了

原本的:

Edison 發表在 痞客邦 留言(2) 人氣()

這是一個討論很久的名詞問題。

void f(int *x)

Edison 發表在 痞客邦 留言(4) 人氣()

現在,假設我要寫一個函數,這個函數是交換二個整數,也就是 a 的值給 b, b 的值給 a,該怎麼寫?這種問題是一般初學者最常犯的錯誤 – 使用 call by value。下面的例子說明了為什麼不能使用 call by value 的方式進行 swap 的動作。在看此例的執行結果時,手邊一樣先準備好紙跟筆,畫出各變數的記憶體位置及儲存值,對學習會很很大的幫助。

 原始碼:

Edison 發表在 痞客邦 留言(1) 人氣()

指標的指標,說穿了只是雙重指標而已。假設 ptr1 是指向變數a的指標,ptr2為指向ptr1的指標,那麼 ptr2 就是變數a “指標的指標”(ptr2→ptr1→a)。這部份很容易搞亂,麻煩請準備紙筆在手邊會比較方便。

現在考慮以下指令:

Edison 發表在 痞客邦 留言(2) 人氣()

接下來為各位介紹陣列和指標的關係。在這裡要先跟大家討論說明,陣列其實本身就是一種指標,但指標本身是一種陣列嗎?答案是否定的,但你的確可以把指標當作陣列在使用(也就是所謂的動態陣列,這個以後會提到)。 

我們先設一個一維陣列,其內容為 for(i=0; i<MAX; i++) Array[i] = I; 由於OS分配給陣列的記憶體位置是連續的,所以配置好後其記憶體示意圖如下所示。 

Edison 發表在 痞客邦 留言(8) 人氣()

「學C語言如果不會用指標,那千萬別說學過」我非常讚同這句話..
對於一般人,指標往往是進入 C 語言後難以跨過的障礙,我也不例外..

Edison 發表在 痞客邦 留言(25) 人氣()

求質數一直是數學家和程式設計者必經之路。最累人判斷n是不是質數的方式就是從2~(n-1) 一個一個除,只有要任何一個除得盡,就不是質數...

當然沒那麼可憐..

Edison 發表在 痞客邦 留言(3) 人氣()

最近在網路上有人提出一個問題,
使用者輸入二個數,並求這二個數之間所有的 "阿姆斯壯數"

Edison 發表在 痞客邦 留言(1) 人氣()

// ============================================

每次在一些程式語言的討論版上都有人請教怎麼寫完美數(也有人翻譯成完全數)

Edison 發表在 痞客邦 留言(0) 人氣()

對於尤拉數,

我們可以使用 Power series 對原點展開,將會變成..

Edison 發表在 痞客邦 留言(1) 人氣()

1 2