偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

學(xué)習(xí)C++時注意事項說明解析

開發(fā) 后端
在C++的世界中有這樣兩個概念,向上類型轉(zhuǎn)換,向下類型轉(zhuǎn)換,分別描述的是子類向基類和基類向子類的強制類型轉(zhuǎn)換。

許多編程人員學(xué)習(xí)C++總結(jié)經(jīng)驗為,有的覺得C++語言是一門獨立的語言,并不是在C語言的基礎(chǔ)上,可以直接學(xué)習(xí)C++不必先從C下手,可以直接學(xué)習(xí)C++不必先從C下手。

1、內(nèi)存分配方式
內(nèi)存分配方式有三種:
(1)從靜態(tài)存儲區(qū)域分配。內(nèi)存在程序編譯的時候就已經(jīng)分配好,這塊內(nèi)存在程序的整個運行期間都存在。例如全局變量,static變量。

(2)在棧上創(chuàng)建。在執(zhí)行函數(shù)時,函數(shù)內(nèi)局部變量的存儲單元都可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時這些存儲單元自動被釋放。學(xué)習(xí)C++內(nèi)存分配運算內(nèi)置于處理器的指令集中,效率很高,但是分配的內(nèi)存容量有限。

(3) 從堆上分配,亦稱動態(tài)內(nèi)存分配。程序在運行的時候用malloc或new申請任意多少的內(nèi)存,程序員自己負責(zé)在何時用free或delete釋放內(nèi)存。動態(tài)內(nèi)存的生存期由我們決定,使用非常靈活,但問題也最多。

2、常見的內(nèi)存錯誤及其對策
發(fā)生內(nèi)存錯誤是件非常麻煩的事情。編譯器不能自動發(fā)現(xiàn)這些錯誤,通常是在程序運行時才能捕捉到。而這些錯誤大多沒有明顯的癥狀,時隱時現(xiàn),增加了改錯的難度。有時用戶怒氣沖沖地把你找來。

程序卻沒有發(fā)生任何問題,你一走,錯誤又發(fā)作了。 常見的內(nèi)存錯誤及其對策如下:內(nèi)存分配未成功,卻使用了它。

編程新手常犯這種錯誤,因為他們沒有意識到內(nèi)存分配會不成功。常用解決辦法是,在使用內(nèi)存之前檢查指針是否為NULL。假如指針p是函數(shù)的參數(shù),那么在函數(shù)的入口處用assert(p!=NULL)進行檢查。假如是用malloc或new來申請內(nèi)存,應(yīng)該用if(p==NULL) 或if(p!=NULL)進行防錯處理。內(nèi)存分配雖然成功,但是尚未初始化就引用它。

犯這種錯誤主要有兩個起因:一是沒有初始化的觀念;二是誤以為內(nèi)存的缺省初值全為零,導(dǎo)致引用初值錯誤(例如數(shù)組)。 內(nèi)存的缺省初值究竟是什么并沒有統(tǒng)一的標準,盡管有些時候為零值,我們寧可信其無不可信其有。#t#

例如在使用數(shù)組時經(jīng)常發(fā)生下標“多1”或者“少1”的操作。非凡是在for循環(huán)語句中,循環(huán)次數(shù)很輕易搞錯,導(dǎo)致數(shù)組操作越界。忘記了釋放內(nèi)存,造成內(nèi)存泄露。含有這種錯誤的函數(shù)每被調(diào)用一次就丟失一塊內(nèi)存。剛開始時系統(tǒng)的內(nèi)存充足,你看不到錯誤。終有一次程序忽然死掉,系統(tǒng)出現(xiàn)提示:內(nèi)存耗盡。

動態(tài)內(nèi)存的申請與釋放必須配對,程序中malloc與free的使用次數(shù)一定要相同,否則肯定有錯誤(new/delete同理)。釋放了內(nèi)存卻繼續(xù)使用它。學(xué)習(xí)C++中,指針和數(shù)組在不少地方可以相互替換著用,讓人產(chǎn)生一種錯覺,以為兩者是等價的。

所以無論用何種方式創(chuàng)建數(shù)組,都別忘了賦初值,即便是賦零值也不可省略,不要嫌麻煩。內(nèi)存分配成功并且已經(jīng)初始化,但操作越過了內(nèi)存的邊界。數(shù)組要么在靜態(tài)存儲區(qū)被創(chuàng)建(如全局數(shù)組),要么在棧上被創(chuàng)建。數(shù)組名對應(yīng)著(而不是指向)一塊內(nèi)存,其地址與容量在生命期內(nèi)保持不變,只有數(shù)組的內(nèi)容可以改變。

責(zé)任編輯:chenqingxiang 來源: 服務(wù)器在線
相關(guān)推薦

2010-01-14 18:19:40

C++語言

2010-01-25 18:12:28

C++

2010-01-27 09:12:01

C++語言學(xué)習(xí)

2010-01-20 17:58:54

C++靜態(tài)成員

2010-02-03 10:21:46

初學(xué)Python

2010-01-18 16:12:16

CC++語言

2010-02-03 16:42:45

C++變量作用域

2010-01-04 15:37:41

ADO連接

2009-10-21 17:32:30

綜合布線注意事項

2011-06-14 15:25:28

C++多線程

2009-08-06 16:13:16

C# Web Serv

2010-02-04 11:23:14

Android操作系統(tǒng)

2011-05-03 16:58:55

噴墨打印機墨水

2010-01-18 14:25:19

使用C++Builde

2010-09-16 09:52:49

CSS display

2010-01-26 16:47:47

VC++6.0

2010-02-03 14:49:54

Python 模塊

2010-01-28 11:24:14

C++函數(shù)

2010-01-11 16:19:05

C++ Builder

2011-08-02 13:08:06

Oracle索引
點贊
收藏

51CTO技術(shù)棧公眾號