国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

【c++】c++初識--基本知識梳理(1)

2019-11-11 04:59:27
字體:
供稿:網(wǎng)友

一、面向過程編程VS面向?qū)ο缶幊蹋ㄍㄟ^c語言和c++比較)

1.面向過程編程的特點

(1) c語言的特點

沒有深思熟慮的設(shè)計過程;

殘留很多低級語言特征;

c語言的目標是高效。

(2)面向過程程序設(shè)計

用途:主要解決科學(xué)計算問題,用戶需求簡單而固定

特點:

分析解決問題所需要的步驟;

利用函數(shù)實現(xiàn)各個步驟;

依次調(diào)用函數(shù)解決問題;

問題:

         軟件可重用性差

         軟件維護性差

         構(gòu)建的軟件無法滿足用戶需求

 

2.面向?qū)ο缶幊烫攸c

(1)面向?qū)ο蟪绦蛟O(shè)計

用途:將現(xiàn)實世界中的事物直接映射到程序中,可直接滿足用戶需求。

特點:

         直接分許用戶需求中涉及的各個實體;

         在代碼中描述現(xiàn)實世界中的實體;

         在代碼內(nèi)關(guān)聯(lián)各個實體協(xié)同工作解決問題。

優(yōu)勢:

         構(gòu)建的軟件能夠適應(yīng)用戶需求的不斷變化;

         直接利用面向過程方法的優(yōu)勢而避開其劣勢。

(2)c++特點:是一種引入了面向?qū)ο笤O(shè)計方法,并且兼容c語言的高效的面向?qū)ο笳Z言。

 

二、c++對c的升級

1.聲明和定義

(1)c++中更強調(diào)語言的“實用性”,所有變量都可以在需要使用時再定義。

#include<iostream> usingnamespacestd; intmain(){    for(inti=0;i<5;i++)    {        cout<<i<<endl;    }     return0;}

(2)c語言中的定義必須在作用域開始的位置開始定義。

 

2.register關(guān)鍵字的變化

(1)register請求編譯器將將局部變量盡可能存儲在cpu的寄存器中,以加快其存儲速度。

         c語言中無法取得register變量的地址。

(2)在c++中依然堅持register關(guān)鍵字

         c++編譯器有自己的優(yōu)化方式,不實用register也可能做優(yōu)化;

         c++中可以取register變量的地址;

         (PS:c++ 中,程序中取register變量地址時,register對變量的聲明變得無效)

        

3.const關(guān)鍵字

(1)const一般用于修飾形參,保護實參的值不被修改;

(2)const修飾的變量初始化時要賦初值;

         c語言中,被const修飾的變量是只讀變量,不可通過變量名修改其值,但是可以修改其空間的內(nèi)容;

         c++中,當變量被const修飾時,即變?yōu)槌A浚豢赏ㄟ^任何方式修改其值。

 

4.c++中的動態(tài)內(nèi)存分配

(1)c++中通過new關(guān)鍵字進行動態(tài)內(nèi)存申請;

(2)c++中的動態(tài)內(nèi)存申請是基于類型進行的;

Type* pointer = new Type; //變量申請Type *array = new Type[100]; //數(shù)組申請

(3)delete關(guān)鍵字用于內(nèi)存釋放。

其他示例:

char (*pp)[100] = new char[100][100]; //二維數(shù)組要用一維數(shù)組指針來接char (*ppp)[100][100] = new char[100][100][100];//三維數(shù)組要用二維數(shù)組指針……delete [] pp;delete [] ppp;……

5.new關(guān)鍵字與malloc函數(shù)的區(qū)別

(1)new關(guān)鍵字是c++的一部分(是運算符),malloc是由c庫提供的函數(shù);

(2)new以具體類型為單位進行內(nèi)存分配,malloc只能以字節(jié)為單位進行內(nèi)存分配;

(3)new在申請單個類型變量時可進行初始化,malloc不具備內(nèi)存初始化。

int *p = new int(5); //*p指向的空間中保存的值為5


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 行唐县| 黎川县| 香河县| 汝州市| 隆尧县| 天全县| 本溪| 望奎县| 上林县| 定结县| 永仁县| 镇江市| 丰县| 基隆市| 泾阳县| 鄂托克前旗| 维西| 黔西县| 班戈县| 河间市| 图木舒克市| 富宁县| 古交市| 新巴尔虎左旗| 门源| 忻州市| 黄冈市| 武威市| 衢州市| 湘潭市| 江口县| 嘉义县| 平凉市| 潢川县| 灵璧县| 深水埗区| 太仆寺旗| 重庆市| 延长县| 阿坝县| 黎城县|