亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        C++編程中遇到的若干問(wèn)題及解決之策

        2014-04-29 00:00:00洪健

        摘 要:C++編程的學(xué)習(xí)對(duì)于一些初學(xué)者來(lái)說(shuō),會(huì)遇到許多細(xì)小技巧上的問(wèn)題,嚴(yán)重阻礙了教師的授課,學(xué)生的深入學(xué)習(xí)。本文分析了常見(jiàn)的編程錯(cuò)誤,然后主要從一些常見(jiàn)的錯(cuò)誤現(xiàn)象進(jìn)行論述并提出一些看法。全文基本上立足于C++編程學(xué)習(xí)遇到的問(wèn)題,提出相應(yīng)的解決之策,給C++編程的初學(xué)者遇到問(wèn)題時(shí)提供一定的參考。

        關(guān)鍵詞:C++編程;問(wèn)題;解決方法

        中圖分類號(hào):TP312.1-4

        1 C++常見(jiàn)的編程錯(cuò)誤分析

        語(yǔ)法錯(cuò)誤和程序設(shè)計(jì)上的邏輯錯(cuò)誤是兩大常見(jiàn)的程序錯(cuò)誤類型,前者主要是指語(yǔ)句的結(jié)構(gòu)混亂或者拼寫上存在的錯(cuò)誤;后者是因?yàn)樵诔绦蛟O(shè)計(jì)之時(shí)因成分的殘缺而產(chǎn)生的錯(cuò)誤,這是編程者本身不可預(yù)測(cè)的錯(cuò)誤,當(dāng)然其中還細(xì)分有一種由于系統(tǒng)環(huán)境異常造成的錯(cuò)誤類型。

        2 一些常見(jiàn)的錯(cuò)誤現(xiàn)象與分析

        2.1 變量命名不當(dāng)。C++編程中,要是對(duì)變量采用直觀在、且明確的方式來(lái)命名,則對(duì)于改變成來(lái)說(shuō)可以避免編碼混亂、減少程序出錯(cuò)的可能性,還能增強(qiáng)程序的可讀性。此時(shí),不得不說(shuō)匈牙利表示法了,它的變量名是以一個(gè)或者多個(gè)小寫字母開(kāi)始代表變量的類型,后面再附以意義明確的大小寫混合字母序列構(gòu)成的變量名字。這正好符合了C++編程的定義變量要求。

        例如,三個(gè)變量分別定義為iValue1、iValue2 和f Result,人們可以一目了然,從首字母得知i是屬于整型變量數(shù)據(jù)的縮寫類型,而f是浮點(diǎn)型變量的數(shù)據(jù)縮寫類型。如果該變量不是采用匈牙利表示法,而采用一般的表示法: iValue1=1、iValue2 =2和f Result= Value1/iValue2,可想而知,該程序數(shù)的據(jù)命名含糊很容易造成數(shù)據(jù)隱藏性丟失。因?yàn)椤?”在處理兩個(gè)甚至多個(gè)整型數(shù)值時(shí),僅能返回一個(gè)整型結(jié)果,而“f”在潛意識(shí)里已經(jīng)明確了浮點(diǎn)結(jié)果,所以說(shuō),那種隱藏式的數(shù)據(jù)丟失就不復(fù)存在了。

        2.2 動(dòng)態(tài)內(nèi)存分配問(wèn)題。顧名思義,動(dòng)態(tài)內(nèi)存分配是指在程序執(zhí)行過(guò)程中由于動(dòng)態(tài)地址分配或者回收儲(chǔ)存空間的分配內(nèi)存的方法。有些編者為了結(jié)社電腦的硬件內(nèi)存,常常使用動(dòng)態(tài)內(nèi)存來(lái)節(jié)省空間,但是在編程過(guò)程當(dāng)中,對(duì)使用動(dòng)態(tài)內(nèi)存的方法操作不當(dāng),就很容易已發(fā)錯(cuò)誤的產(chǎn)生。對(duì)1指針進(jìn)行解引操作(*),在進(jìn)行內(nèi)存分配操作時(shí)越過(guò)臨界點(diǎn),只想釋放部分內(nèi)存卻過(guò)多的對(duì)“暫時(shí)的非動(dòng)態(tài)內(nèi)存”在也給釋放了從而導(dǎo)致不能再使用、終結(jié)程序的運(yùn)行等等,這些都是常見(jiàn)的與動(dòng)態(tài)內(nèi)存相關(guān)的錯(cuò)誤類型。

        基于上文提到無(wú)故釋放非動(dòng)態(tài)內(nèi)存而導(dǎo)致程序的終止問(wèn)題,主要是因?yàn)橥洐z索關(guān)于free的請(qǐng)求是否完成了匹配的工作。為此,可以參照以下方式改進(jìn)程序:

        2.3 多層嵌套的使用問(wèn)題。對(duì)于計(jì)算機(jī)的愛(ài)好者來(lái)說(shuō),C++編程中對(duì)于經(jīng)常性的使用多重嵌套并不感到陌生,但是由于技術(shù)上的使用還不能倒背如流,使用之后是否解套——也就是說(shuō)是否已經(jīng)從多重嵌套中跳離出來(lái)不明明確做出判斷。由此給編程帶來(lái)了一定的困難。再加上匯編語(yǔ)言break每一次只能跳出一個(gè)套,它已經(jīng)不能滿足跳出多層嵌套的需求。

        針對(duì)此種多層嵌套的情況,可以對(duì)匯編語(yǔ)言進(jìn)行修改,常見(jiàn)的有以下三種。goto quit語(yǔ)句的使用能夠簡(jiǎn)單而快速的完成跳出多重嵌套的指令;其次,對(duì)每一個(gè)嵌套單獨(dú)設(shè)置進(jìn)入使用if disaster、離開(kāi)采用return的函數(shù)語(yǔ)句來(lái)表達(dá);最后一種方法是,在執(zhí)行編程命令時(shí),設(shè)置相應(yīng)的動(dòng)態(tài)標(biāo)志 。總而言之,在使用多重嵌套的時(shí)候,采用成對(duì)出現(xiàn)的函數(shù)非常有利于檢查是否做到全面跳出“套鎖”的禁錮。

        2.4 比較運(yùn)算符與賦值運(yùn)算符的使用錯(cuò)誤?!?=”與“=”兩個(gè)運(yùn)算符中,后者是熟悉的賦值運(yùn)算符而前者卻屬于比較運(yùn)算符,但是有許多C++編程的初學(xué)者非常容易出現(xiàn)混用的錯(cuò)誤,這大概是他們不了解含義才造成的。賦值運(yùn)算符產(chǎn)生的值就是我們賦予的想要的值,而比較運(yùn)算符的值僅是表示一個(gè)比較的結(jié)果,具有不確定性。就如大家所知道的,C++編程邏輯設(shè)計(jì)當(dāng)中,0意味著假,非0為真。如:

        該例子本是要根據(jù)x與2的比較結(jié)果,輸出兩條信息中的任意一條的比較運(yùn)算。但是由于x已經(jīng)被賦予了非零數(shù)值2即x=2,所以無(wú)論x的初值是多少,也只能顯示第一條信息了。所以說(shuō)在C++中為了程序的結(jié)果,千萬(wàn)要注意“==”與“=”不能為了節(jié)省就少輸入“=”也不能認(rèn)為比較運(yùn)算符“==”是錯(cuò)誤的,而寫成賦值運(yùn)算符“=”。

        2.5 基本概念混淆導(dǎo)致的錯(cuò)誤。C++編程中,局部變量、全局變量與、和儲(chǔ)存類別是C++初學(xué)者難以區(qū)分的基本概念,因此,很容易就造成程序編輯時(shí)出現(xiàn)錯(cuò)誤。局部變量從名稱上就可以得出初步的理解,它是局部的,盡在本函數(shù)內(nèi)有效。要明確的是不同函數(shù)可以使用相同的變量名,但是因?yàn)閷?duì)象不相同,所以也就互不干擾。形式參數(shù)和main定義的函數(shù)均屬于局部變量的范疇。關(guān)于全局變量是在函數(shù)外部定義的變量,它的有效范圍起于定義的變量而止于本源文件。由于它會(huì)至始至終的霸占儲(chǔ)存單元,因而會(huì)降低函數(shù)的通用性,進(jìn)一步也會(huì)降低程序的清晰度,所以編程編輯過(guò)程應(yīng)盡量少用全局變量,尤其是初學(xué)者,更應(yīng)該慎用。

        變量?jī)?chǔ)存類別是最難辨別清楚,也是最容易出錯(cuò)的一個(gè)環(huán)節(jié)。程序、靜態(tài)儲(chǔ)存和動(dòng)態(tài)儲(chǔ)存區(qū)是儲(chǔ)存空間;然后還具體包括anto、register、extern。這就要求編程員要非常的明確所要儲(chǔ)存的數(shù)據(jù)屬于什么范疇,能夠在最短的時(shí)間內(nèi)做出正確的判斷,為接下來(lái)編程調(diào)用數(shù)據(jù)做好相關(guān)的前提工作。要是儲(chǔ)存不正確,在程序用用到時(shí),控制器發(fā)出指令后連相關(guān)數(shù)據(jù)都找不到,更別談利用數(shù)據(jù)進(jìn)行編程運(yùn)算了。

        3 錯(cuò)誤教學(xué)系統(tǒng)的應(yīng)用

        由于初學(xué)者初學(xué)C++時(shí)遇到的問(wèn)題大體上都是大同小異,如果我們把一些常見(jiàn)的錯(cuò)誤類型以及一些可以避免編程過(guò)程發(fā)生錯(cuò)誤的方法匯編成一個(gè)教學(xué)系統(tǒng),利用內(nèi)嵌的編譯器提供的錯(cuò)誤引導(dǎo)學(xué)生進(jìn)行調(diào)試、修改錯(cuò)誤類別,從而學(xué)習(xí)C++編程,這樣很有利于提高學(xué)生對(duì)程序錯(cuò)誤的來(lái)源進(jìn)行認(rèn)識(shí),避免在實(shí)踐過(guò)程中有相同的錯(cuò)誤產(chǎn)生。首先是使用XML格式的文件收集并且整理常見(jiàn)的錯(cuò)誤案例;其次是進(jìn)入變量觀察試用、跟蹤觀察調(diào)試做成相應(yīng)的集成調(diào)試教程給學(xué)生使用;再接著利用內(nèi)調(diào)做反饋和提示程序的錯(cuò)誤信息反映錯(cuò)來(lái)給學(xué)生;再然后就是錯(cuò)誤教學(xué)系統(tǒng)中的修改功能排上用場(chǎng),學(xué)生根據(jù)提示操作修改,再由系統(tǒng)做錯(cuò)正誤的識(shí)別;最后對(duì)案例再進(jìn)行強(qiáng)化修改的設(shè)計(jì)思路,使案例能夠與時(shí)俱進(jìn)。

        4 結(jié)束語(yǔ)

        在學(xué)習(xí)C++語(yǔ)言編程過(guò)程中,有可能會(huì)遇到許許多多的問(wèn)題,且這些問(wèn)題并非全部屬于技術(shù)上的難題,而是一些經(jīng)驗(yàn)不足、甚至是概念不清晰而產(chǎn)生的錯(cuò)誤。需多記多練多總結(jié)然后加以理解,相信對(duì)提高C++編程初學(xué)者對(duì)程序的認(rèn)知上很有幫助,可以在學(xué)習(xí)過(guò)程中少走一些彎路。

        參考文獻(xiàn):

        [1]王軍,王太雷.高校Visual C++編程環(huán)境教改實(shí)驗(yàn)研究[J].泰山學(xué)院學(xué)報(bào),2007(03).

        [2]楊薇,陳雪,C#編程中的內(nèi)存管理過(guò)程中的問(wèn)題分析[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012(12).

        [3]楊富強(qiáng),豆成杰.C語(yǔ)言編程中常見(jiàn)錯(cuò)誤解析[J].硅谷,2012(19).

        作者單位:西安市衛(wèi)生學(xué)校,西安 710054

        国产人成在线免费视频| 波多野结衣久久精品99e| 久久无码av一区二区三区| 亚洲熟伦熟女新五十路熟妇| 日本高清不在线一区二区色| 成人短篇在线视频夫妻刺激自拍 | 狠狠色噜噜狠狠狠狠米奇777| 亚洲熟妇av乱码在线观看| 久久久9色精品国产一区二区三区| 不卡av一区二区在线| 亚洲精品久久久久一区二区| 一本无码av中文出轨人妻| 免费99视频| 美女黄网站永久免费观看网站| 国产视频激情视频在线观看| 国产精品女同久久久久电影院| 日韩亚洲欧美中文在线| 国产高清吃奶成免费视频网站| 极品少妇被后入内射视| 亚洲综合在线观看一区二区三区| 亚洲人成网网址在线看| 久久久久国产精品熟女影院 | 综合久久久久6亚洲综合| 手机在线国产福利av| 亚洲中文字幕午夜精品| 肥臀熟女一区二区三区| 日本高清中文字幕一区二区三区| 国产精品高清亚洲精品| 精品在线视频在线视频在线视频| 色偷偷亚洲第一成人综合网址| 精品国产v无码大片在线观看| 强d漂亮少妇高潮在线观看| 99久久精品国产91| 日本丰满熟妇videossexhd| 把插八插露脸对白内射| h动漫尤物视频| 各类熟女熟妇激情自拍| 门卫又粗又大又长好爽| 日本一区午夜艳熟免费| 国产不卡一区在线视频| 少妇免费av一区二区三区久久|