孫雨軒
(東北師范大學附屬中學凈月實驗學校,長春 130117)
問題表現:C++編程語言對于命名問題十分重視,尤其還對變量的命名,必須明確,其目的就是為了避免出現由于命名混亂導致的程序錯誤,影響程序的可讀性。關于變量命名問題,一般是出現在初學者在程序的編寫過程中容易出現的問題。
解決對策:為了進一步解決新手在操作中出現這樣的問題,通過匈牙利表法能夠直接有效的通過用一個或者多個小寫字母對變量名進行命名,夾著在字母后面著名變量的意義,就能夠按照隨附的字母進行排序,也能夠自符合C++編程的變量要求。例如,以編程中三個變量為例,這三個變量分別是iValue1、iValue2、fResult,通過觀察命名就能知道命名所代表的變量意思。
首字母i就表示整個變量數據屬于整型變量數據,f就表示整個變量數據屬于浮點型變量數據。所以能夠強襲準確的對這些變量數據進行辨別和確認。如果采用一般的命名法,我們能夠區分iValue1、iValue2是具有相同屬性的兩個變量,但是就很難理解fResult的類型關系。所以說利用匈牙利表示法,能夠有效的幫助新手在應用不熟練的情況下找到數據并進行下一步工作。
問題表現:動態內存分配的問題,一直是C++編程中經常出現的問題,在分析動態內存問題的表現形式以及解決方法之前,先要對動態內存分配的內涵有一定的了解。動態內存分配就是指程序執行的過程中動態的分配或者回收儲存空間,進行再分配。在編程中,經常會出現程序編寫人員為了節省空間內存,使用動態內存來儲存空間,最終由于操作不當,導致的動態分配的問題。這時,null指針會進行接引操作,對分配的內存進行越過邊界的處理,釋放非動態分配的內存、在什邡過程中經常是釋放了一部分但隨即就又被繼續使用。在傳遞的過程中,要求傳遞給free的指針必須從malloccalloc-realloc函數再返還給指針。但是通過釋放非港臺內存,容易引起程序的終止或延遲終止。


問題表現:概念的混淆主要體現在對局部變量、全局變量、存儲類別的概念混淆。這三種概念都是C++編程中經常出現的問題,對于初學者而言很難區分三者之間的關系。局部變量就是指在函數內部的定義,并旨在函數中能夠有效,在應用中要注重,在main中定義的局部變量也只是在主函數有效,由于不同的函數不同,可以通過使用同名的局部變量,只要局部變量只針對函數作用,就能夠互不干擾。全局變量,也就外部變量,顧名思義,就是與局部變量的內涵完全相反,知識能夠應用在函數外部的變量。通過對整個程序的考慮,由于外部變量空間占用內存較大,也要注重對其的應用,避免出新降低程序清晰度的問題。變量存儲類別,在整個程序中主要有三個存儲部分,分別是:程序區、動態存儲區、靜態存儲區。
由于數據種類的不同,也要放在不同的存儲去進行存儲。其中變量存儲的只要是在動態存儲區和靜態存儲區之中。由于命名不同,例如,auto、extern、static等。所以針對不同的命名就要選擇不同的存儲空間。
解決對策:為了進一步解決概念混淆使用問題,主要就是掌握局部變量、全局變量、存儲類別的概念,進一步在進行存儲是,主張對變量性質的權衡。對于靜態局部變量,在函數調試之后,不釋放其占用的單元,在進行下一次函數的使用時,仍然可以對上次的數據進行再次使用數據,在靜態局部變量中通過函數的調試,這是其他函數不能夠比擬的。靜態全局變量,通過上文對全局變量含義的分析,靜態全局變量只能夠應用在本函數中。register是能夠把作為一般變量進行儲存,在程序運行中需要時,由控制器該變量輸送在CPU運算器中,通過CPU的運算,再進行存儲。現在技術已經能夠將變量進行自行的發送,不需要指定即可。
在這個過程中,C++編程中常見問題與解決途徑需要以變量命名、動態內存、概念混淆使用為依據,注意在進行編程中對常見問題綜合思考,是提高解決能力、促進C++編程程序完善上升空間的有效舉措。
[1] 李素若.基于慕課的編程類課程混合式教學模式研究與實踐——以《C++程序設計》為例[J].軟件導刊,2017,16(1):189-191.