編程代碼

編程代碼
編程代碼
  • 「C++」讀懂指針與内存
    C和(hé / huò)C++最強大(dà)的(de)地(dì / de)方在(zài)哪裏呢?就(jiù)是(shì)指針對内存的(de)操作。有了(le/liǎo)指針我們才可以(yǐ)在(zài)代碼内存裏自由飛翔,想玩哪裏玩哪裏,想變什麽變什麽。 内存 首先我們聊聊什麽是(shì)内存(我們以(yǐ)32位程序模型爲(wéi / wèi)例)。對于(yú)一(yī / yì /yí)個(gè)進程來(lái)說(shuō),内存可以(yǐ)理解成一(yī / yì /yí)連串的(de)帶編号的(de)存儲區域。 每個(gè)進程都映射一(yī / yì /yí)段連續的(de)虛拟内存地(dì / de)址(不(bù)是(shì)内存的(de)真實物理地(dì / de)址,隻是(shì)一(yī / yì /yí)個(gè)編号,物理内存地(dì / de)址可以(yǐ)不(bù)連續)。 每個(gè)格子(zǐ)我們理解爲(wéi / wèi)一(yī / yì /yí)個(gè)字節,也(yě)就(jiù)是(shì)一(yī / yì /yí)個(gè)byte或者說(shuō)一(yī / yì /yí)個(gè)unsigned char。 而(ér)指針...
    2021-01-18 09:08:08
  • C++異常處理(try catch throw)完全攻略
    程序運行時(shí)常會碰到(dào)一(yī / yì /yí)些異常情況,例如: • 做除法的(de)時(shí)候除數爲(wéi / wèi) 0; • 用戶輸入年齡時(shí)輸入了(le/liǎo)一(yī / yì /yí)個(gè)負數; • 用 new 運算符動态分配空間時(shí),空間不(bù)夠導緻無法分配; • 訪問數組元素時(shí),下标越界;打開文件讀取時(shí),文件不(bù)存在(zài)。 這(zhè)些異常情況,如果不(bù)能發現并加以(yǐ)處理,很可能會導緻程序崩潰。 所謂“處理”,可以(yǐ)是(shì)給出(chū)錯誤提示信息,然後讓程序沿一(yī / yì /yí)條不(bù)會出(chū)錯的(de)路徑繼續執行;也(yě)可能是(shì)不(bù)得不(bù)結束程序,但在(zài)結束前做一(yī / yì /yí)些必要(yào / yāo)的(de)工作,如将内存中的(de)數據寫入文件、關閉打開的(de)文...
    2021-01-13 14:21:49
  • 萬花模拟器(C/C++基礎)
    /**************************** 還記得小時(shí)候玩的(de)萬花尺麽?好好玩,各種不(bù)同的(de)點距能畫出(chū)各種各樣形狀圖形。 C語言程序萬花尺模拟 函數功能:每隔5秒随機生成萬花圖形 并自動保存作圖參數以(yǐ)及圖形到(dào)當前目錄,圖像格式爲(wéi / wèi)jpg 提示: 相關參數範圍可以(yǐ)自行設置,用自定義mySetRand函數設置作圖尺寸範圍 注意: 内圓半徑不(bù)能大(dà)于(yú)外圓半徑,内圓作圖點不(bù)能大(dà)于(yú)内圓半徑 *****************************/ ...
    2021-01-11 10:55:18
  • C++11多線程編程(九)——總結篇
    這(zhè)篇是(shì)多線程編程系列的(de)總結篇,複盤一(yī / yì /yí)下前面講到(dào)的(de)多線程的(de)各個(gè)知識點。要(yào / yāo)想成爲(wéi / wèi)一(yī / yì /yí)個(gè)優秀程序員,多線程編程是(shì)永遠也(yě)繞不(bù)開的(de)話題,必須要(yào / yāo)掌握,不(bù)同的(de)語言實現多線程的(de)方式都各不(bù)相同,但原理都是(shì)相通的(de)。 爲(wéi / wèi)何需要(yào / yāo)多線程,因爲(wéi / wèi)要(yào / yāo)充分利用CPU的(de)性能,特别是(shì)多核CPU,提升效率,提高用戶體驗。 早期的(de)C++在(zài)語言級别上(shàng)并不(bù)支持多線程,要(yào / yāo)實現多項隻能依靠不(bù)同系統多線程函數,這(zhè)給C++多線程編程帶來(lái)了(le/liǎo)一(yī / yì /yí)定的(de)麻煩。但在(zài)C++11開始,C++正式的(de)支持了(le/liǎo)多線程編程。 那麽...
    2021-01-07 14:02:12
  • C++11多線程編程(八)——死鎖問題
    一(yī / yì /yí)、死鎖現象 看到(dào)“死鎖”二字,你是(shì)不(bù)是(shì)慌得不(bù)知所措。死鎖,顧名思義就(jiù)是(shì)這(zhè)個(gè)鎖死掉了(le/liǎo),再也(yě)動不(bù)了(le/liǎo)了(le/liǎo)。那死鎖是(shì)怎麽産生的(de)呢?當你對某個(gè)資源上(shàng)鎖後,卻遲遲沒有釋放或者根本就(jiù)無法釋放,導緻别的(de)線程無法獲得該資源的(de)訪問權限,進而(ér)程序無法運行下去,有點像是(shì)阻塞的(de)現象。但是(shì)阻塞是(shì)一(yī / yì /yí)種正常現象,而(ér)死鎖可以(yǐ)說(shuō)是(shì)一(yī / yì /yí)種bug,必須要(yào / yāo)處理。 那麽我現在(zài)就(jiù)舉個(gè)死鎖的(de)例子(zǐ),來(lái)分析分析。 # include <iostream> # include ...
    2021-01-07 14:00:41
  • C++11多線程編程(七)——信号量的(de)實現
    一(yī / yì /yí)、爲(wéi / wèi)何需要(yào / yāo)信号量 信号量用來(lái)幹嘛的(de)呢?搜尋答案的(de)話,很多人(rén)都會告訴你主要(yào / yāo)用于(yú)線程同步的(de),意思就(jiù)是(shì)線程通信的(de)。簡單來(lái)說(shuō),比如我運行了(le/liǎo)2個(gè)線程A和(hé / huò)B,但是(shì)我希望B線程在(zài)A線程之(zhī)前執行,那麽我們就(jiù)可以(yǐ)用信号量來(lái)處理。有些人(rén)可能會疑惑,那麽麻煩幹嘛?你不(bù)是(shì)要(yào / yāo)B線程先執行嗎?那麽我讓A線程休眠一(yī / yì /yí)點時(shí)間不(bù)就(jiù)可以(yǐ)了(le/liǎo)嗎?沒錯,這(zhè)個(gè)思路是(shì)可以(yǐ)的(de),但是(shì)如果B線程也(yě)因爲(wéi / wèi)某些原因(比如硬件,操作系統的(de)原因)導緻延緩執行了(le/liǎo),這(zhè)該怎麽辦?到(dào)底A線程該休眠多少時(shí)間合适呢?所以(yǐ)正确的(de)做法就(jiù)是(shì)在(zài)B...
    2021-01-07 14:00:00
1 2 3 ··· 6
在(zài)線客服 雙翌客服
客服電話
  • 0755-23712116
  • 13310869691