c++被稱之為混合型語言
(1)、c++的函式和物件c++將資料從乙個物件流向另乙個物件的流動抽象為流。
cin,標準輸入,cout,標準輸出
1)、從流中獲取資料的操作稱為提取操作。
當程式需要執行鍵盤輸入時,使用提取操作符 「 >>」從cin輸入流中提取字元 。
2)、向流中新增資料的操作稱為插入操作。
當程式需要在螢幕上顯示輸出時,使用插入操作符 「 <
3)、c++標準輸入輸出的標頭檔案是iostream
#include4)、命名空間是一種將程式庫名稱封裝起來的方法,提高了程式的效能和可靠性。使用命名空間,讓命名空間std內的名稱**。
using namespace std;5)、c++使用原則:必須要先宣告,後使用。
6)、在c++中,使用const代替巨集定義,用關鍵字const修飾的識別符號是一類特殊的常量,稱為符號常量/const變數。在程式中不可被改變。
const int bufsize = 100;7)、分析處理幾種特殊的語句,被稱為預處理語句。
預處理語句:巨集定義、檔案包含和條件編譯。
(選擇題、填空題)
8)、書寫程式語句,應注意如下規則:
括號緊跟在函式名的後面,但在for和while後面,應用乙個空格與左空格以增加可隊形。(2)、c++語言的特點數**輸付的左右後面留乙個,以與表示式區別。
在表示引數時,逗號後面留乙個空格。
在for、do…while和while語句中,合理使用縮排、一對花括號和空行。
太長的程式行應分為兩行或者幾行,並注意選取合適的分行和縮排位置。
c++語言的標準模板庫(stl)
1)、函式過載
c++允許為同乙個函式定義幾個版本,從而使乙個函式名具有多種功能。
#include using namespace std;
int max(int,int); //宣告2個引數的函式原型
int max(int,int,int); //宣告3個引數的函式原型
void main()
int max(int a,int b)
int max(int a,int b,int c)
/** * 執行結果:
* 請輸入兩個整數值(使用空格區分):
* 35 25
* 35和25中最大的整數值為:35
* 請輸入三個整數值(使用空格區分):
* 25 39 35
* 25、39、35中最大的整數值為:39
*/
2)、新的基本資料型別和注意事項
① void是無型別識別符號,只能用來宣告函式的返回值型別,不能用來宣告變數;
② c++標準限定int和short至少要有16位,而long至少32位,short不得長於int,int不得長於long,int使用4位元組;
//宣告並定義乙個物件,使用"&"來獲取物件的儲存位址並輸出
void example1()
④ c++中的整數常量有四種型別:十進位制常量、長整型常量、八進位制常量和十六進製制常量,並用字首和字尾進行分類標識(選擇題)
//整數常量示例
void example2()
⑤ 可以用字尾表示浮點常量的型別,帶f或f的是float型別;l或l表示它是long double型別;沒有字尾則是double型別(選擇題)
//浮點型常量示例
void example3()
//申請可以儲存size個該資料型別的物件不使用時,可以使用new 型別名 [size]
「delete指標名」
釋放空間(選擇題、填空題)
void example4()
for(int k=0;k4)、引用
引用就是為現有的物件起乙個別名,選定命名時使用「引用」運算子"&",它將乙個新識別符號與一塊已經存在的儲存區域相關聯,引用並沒有分配新的儲存區域,它本身並不是新的資料型別。如下簡單示例:
#include using namespace std;
void example5()
理解引用的兩點:(重點理解)
① 引用實際上就是變數的別名,它同變數在使用形式上是完全一樣的,它只作為一種標識物件的手段。不能直接宣告對陣列的引用,不能宣告引用的引用,可以宣告對指標的引用,也可以宣告指向引用的指標。
② 引用與指標有相似之處,它可以對記憶體位址上存在的變數進行修改,但它不占用新的位址
,從而節省開銷。指標是低階的直接操作記憶體位址的機制,指標功能強大但極易產生錯誤;引用則是較高階的封裝了指標的特性,它並不直接操作記憶體位址,不可以由強制型別轉換而得
,因而具有較高的安全性。
如何建立對陣列的引用,可以通過typedef來實現,如下示例:
#include using namespace std;
void example6(); //對陣列進行初始化
array &b = a; //引用陣列a
a[1] = 100; //改變陣列a中的值
for(int i = 0;i5)、對指標使用const限定符(選擇題)
① 指向常量的指標
指向常量的指標是在非常量指標前面使用const,例如:const int *p; 它告訴編譯器"*p"是常量,不能將"*p"作為左值來操作,如下:
const int y = 50;
const int *p = &y;//指向常量的指標指向y,y是常量,不可以作為左值
再比如:
int x = 20;
const int *p = &x;//這時"*p"不能作為左值,但可以使用"x="來改變x的值,所以這個const僅僅是限定了使用"*p"的方式
② 常量指標
把const限定符放在*號的右邊,使指標本身成為乙個const指標,如下:
int x = 5;
int * const p = &x;//這個指標本身就是常量,編譯器要求給它乙個初始值,這個值在整個指標的生存週期都不會改變,但可以使用"*p="來改變其值
③ 指向常量的常量指標
例如:
int x = 2;
const int * const p = &x;//這時告訴編譯器*p和p都是常量,限制了"&"和"*"運算子
6)、泛型演算法應用於普通陣列
要輸出陣列的內容、對陣列進行公升冪排序、反轉陣列的內容、複製陣列的內容等操作,需要包含標頭檔案
reverse(a,a+length); //陣列元素反轉排列
copy(a,a+length,b); //將陣列a的內容複製到陣列b
reverse_copy(a,a+length,b); //將陣列a的內容以逆向方式複製到陣列b
sort(a,a+length); //預設是公升冪排序
copy(a,a+length,ostream_iterator(cout,"字串")); //將陣列內容按正向方式輸送到螢幕
copy(a,a+length,ostream_iterator(cout," ")); //在每個輸出元素後面增加乙個空格
copy(a,a+length,ostream_iterator(cout,"\n")); //在輸出每個元素之後,換行
要對陣列進行降冪排序和檢索,需要包含標頭檔案
sort(b,b+length,greater()); //陣列降冪排序
find(a,a+length,value); //查詢陣列a內是否存在值為value的元素,它返回的是位置指標
7)、資料的簡單輸入輸出格式
c++提供了兩種格式控制方式:一種是使用iso_base類提供的介面;另一種是使用一種稱為操控符的特殊函式,它的特點是可直接包含在輸出和輸入表示式中。不帶形式引數的操控符定義在標頭檔案中,帶形式引數的操控符定義在標頭檔案中。
常用操控符及含義
名稱含義
dec設定轉換基數為十進位制
oct設定轉換基數為八進位制
hex設定轉換基數為十六進製制
endl
輸出乙個換行符並重新整理流
resetiosflags和setiosflags的引數flag是引用c++的類ios_base裡定義的列舉常量,所以要使用限定符"::"
(3)、程式的編輯、編譯和執行的基本概念
用c++語言寫成的程式被稱為源程式,源程式必須經過c++編譯器程式翻譯成機器語言才能執行,其大概過程如下:
① 先使用編輯器編輯乙個c++源程式my.cpp;
② 然後使用c++編譯器對這個源程式進行編譯,產生my.obj檔案;
③ 再使用連線程式,將my.obj變成my.exe可執行檔案。
第一章 C 程式設計
今天終於下定決心將資料結構與演算法重新在複習一遍,先是c 的一些比較容易忘記的特性簡單的溫習一遍 包括遞迴呼叫,異常操作,類模板,函式模板等等,這三天寫得原始碼如下 book name c structure and algorithm filename chapter1.cpp version 1...
C 程式語言(第一章)
一.全書結構 1,1 3章,c 程式設計風格,以及有關c 標準庫的綜述 2,4 9章,c 內部型別 3,10 15,c 物件導向和通用型程式設計 4,16 22,c 標準庫 5,23 25,設計和開發軟體 6,附錄 二.給c程式設計師得建議 1,c 裡幾乎不需要用巨集,用const或enum定義明顯...
c 程式設計思想 第一章
第一章 物件導言。7 19 在這一章討論了物件導向程式設計 opp 的思想和如何用這一思想解決軟體危機的問題。物件 我們可以設定乙個物件,並對他發出請求 發出乙個訊息 使它能夠為我們完成某種功能,可以向物件發出的請求是由他的介面 inte ce 定義的,而介面由型別確定。對於物件導向程式設計的三個特...