Time of Update: 2017-01-19
局部變數在一個函數內部定義的變數是內部變數,它只在本函數範圍內有效,也就是說只有在本函數內才能使用它們,在此函數以外是不能使用這些變數的。同樣,在複合陳述式中定義的變數只在本複合陳述式範圍內有效。這稱為局部變數(local variable)。如:對局部變數的一些說明:1) 主函數main中定義的變數(m, n)也只在主函數中有效,不會因為在主函數中定義而在整個檔案或程式中有效。主函數也不能使用其他函數中定義的變數。2)
Time of Update: 2017-01-19
C++函數的嵌套調用C++不允許對函數作嵌套定義,也就是說在一個函數中不能完整地包含另一個函數。在一個程式中每一個函數的定義都是互相平行和獨立的。雖然C++不能嵌套定義函數,但可以嵌套調用函數,也就是說,在調用一個函數的過程中,又調用另一個函數。在程式中實現函數嵌套調用時,需要注意的是:在調用函數之前,需要對每一個被調用的函數作聲明(除非定義在前,調用在後)。【例】用弦截法求方程f(x)=x3-5x2+16x-80=0的根。這是一個數值求解問題,需要先分析用弦截法求根的演算法。根據數學知識,可以
Time of Update: 2017-01-19
C++函數模板我們知道,資料或數值可以通過函數參數傳遞,在函數定義時它們是未知的,只有在發生函數調用時才能確定其值。這就是資料的參數化。其實,資料類型也可以通過參數來傳遞,在函數定義是可以不指明具體的資料類型,當發生函數調用時,編譯器可以根據傳入的參數自動確定資料類型。這就是資料類型參數化。所謂函數模板,實際上是建立一個通用函數,其傳回值類型和形參類型不具體指定,用一個虛擬類型來代替(實際上是用一個標識符來佔位)。這個通用函數就稱為函數模板(Function
Time of Update: 2017-01-19
內嵌函式(內嵌函數,內建函數)調用函數時需要一定的時間和空間的開銷。C++提供一種提高效率的方法,即在編譯時間將函數調用處用函數體替換,類似於C語言中的宏展開。這種在函數調用處直接嵌入函數體的函數稱為內嵌函式(inline function),又稱內嵌函數或內嵌函數。指定內嵌函式的方法很簡單,只需要在定義函數時增加 inline 關鍵字。注意:是在函數定義時增加 inline 關鍵字,而不是在函式宣告時。在函式宣告時增加 inline 關鍵雖然沒有錯誤,但是也沒有任何效果inline
Time of Update: 2017-01-19
一個較大的程式不可能完全由一個人從頭至尾地完成,更不可能把所有的內容都放在一個主函數中。為了便於規劃、組織、編程和調試,一般的做法是把一個大的程式劃分為若干個程式模組(即程式檔案),每一個模組實現一部分功能。不同的程式模組可以由不同的人來完成。在程式進行編譯時間,以程式模組為編譯模組,即分別對每一個編譯模組進行編譯。如果發現錯誤,可以在本程式模組範圍內查錯並改正。在分別通過編譯後,才進行串連,把各模組的目標檔案以及系統檔案串連在一起形成可執行檔。在一個程式檔案中可以包含若干個函數。無論把一個程式
Time of Update: 2017-01-19
用下面公式求π的近似值。π/4≈1-1/3+1/5-1/7+…直到最後一項的絕對值小於10-7為止。根據給定的演算法很容易編寫程式如下:#include <iostream>#include <iomanip>#include <cmath>using namespace std;int main( ){ int s=1; double n=1,t=1,pi=0; while((fabs(t))>1e-7) { pi=pi+t; n=
Time of Update: 2017-01-19
實際上,break語句還可以用於迴圈體內。break語句的一般格式為: break;其作用為使流程從迴圈體內跳出迴圈體,即提前結束迴圈,接著執行迴圈體下面的語句。break語句只能用於迴圈語句和switch語句內,不能單獨使用或用於其他語句中。continue語句的一般格式為: continue;其作用為結束本次迴圈,即跳過迴圈體中下面尚未執行的語句,接著進行下一次是否執行迴圈的判定。continue語句和break語句的區別是:continue語句只結束本次迴圈,而不是終止整個迴圈的執行。
Time of Update: 2017-01-19
用do-while語句構成迴圈do-while語句的特點是先執行迴圈體,然後判斷迴圈條件是否成立。其一般形式為: do 語句 while (運算式);它是這樣執行的:先執行一次指定的語句(即迴圈體),然後判別運算式,當運算式的值為非零(“真”) 時,返回重新執行迴圈體語句,如此反覆,直到運算式的值等於0為止,此時迴圈結束。可以用下圖表示其流程。【例】用do-while語句求1+2+3+…+100。#include <iostream>using namespace std;
Time of Update: 2017-01-19
C++ while迴圈while語句的一般形式如下: while (運算式) 語句其作用是: 當指定的條件為真(運算式為非0)時,執行while語句中的內嵌語句。其流程圖見下圖。其特點是:先判斷運算式,後執行語句。while迴圈稱為當型迴圈。例:求1+2+3+…+100。#include <iostream>using namespace std;int main( ){ int i=1,sum=0; while (i<=100) { sum=sum+i; i+
Time of Update: 2017-01-19
C++編寫選擇結構的程式下面,通過兩個執行個體來說明如何編寫較為複雜的C++程式。【例】編寫程式,判斷某一年是否為閏年。#include <iostream>using namespace std;int main( ){ int year; bool leap; cout<<"please enter year:";//輸出提示 cin>>year; //輸入年份 if (year%4==0) //年份能被4整除 { if(year%100=
Time of Update: 2017-01-19
何謂初始化列表與其他函數不同,建構函式除了有名字,參數列表和函數體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化欄位。在C++中,struct和class的唯一區別是預設的克訪問性不同,而這裡我們不考慮訪問性的問題,所以下面的代碼都以struct來示範。複製代碼 代碼如下:struct foo{ string name ; int id ;
Time of Update: 2017-01-19
建構函式:在類執行個體化對象時自動執行,對類中的資料進行初始化。建構函式可以從載,可以有多個,但是只能有一個預設建構函式。解構函式:在撤銷對象佔用的記憶體之前,進行一些操作的函數。解構函式不能被重載,只能有一個。調用建構函式和解構函式的順序:先構造的後析構,後構造的先折構。它相當於一個棧,先進後出。複製代碼 代碼如下:#include<iostream>#include<string>using namespace std;class
Time of Update: 2017-01-19
指標數組定義:如果一個 數組,其元素均為指標型資料,該數組為指標數組,也就是說,指標數組中的每一個元素相當於一個指標變數,它的值都是地址。形式:一維指標數組的定義形式為:int【類型名】 *p【數組名】 [4]【數組長度】;由於[ ]比*優先順序高,因此p先與[4]結合,形成p[4]的數組的形式。然後與p前面的“ * ”結合,“ * ”表示此數組是指標類型的,每個數組元素都相當於一個指標變數,都可以指向整形變數。注意:不能寫成int
Time of Update: 2017-01-19
對於數組int a[10];a表示數組的第一個元素的地址,即&a[0];如果使指標p,指向數組的首元素,可以進行操作:int * p=a;或者int *p=&a[0];那麼p++,是指向數組中的先一個元素,即a[1];此時*p則是a[1]中所放的值。此時,a[i]=p[i]=*(a+i)=*(p+i)下面舉一個例子;直接用a[i]來輸出複製代碼 代碼如下:#include<iostream>using namespace std;int main(){ int a[10]=
Time of Update: 2017-01-19
c++比起c來除了多了類類型外還多出一種類型:引用。這個東西變數不象變數,指標不象指標,我以前對它不太懂,看程式時碰到引用都稀裡糊塗蒙過去。最近把引用好好地揣摩了一番,小有收穫,特公之於社區,讓初學者們共用。 引用指的是對一個對象的引用。那麼什麼是對象?在c++中狹義的對象指的是用類,結構,聯合等複雜資料類型來聲明的變數,如 MyClass myclass,CDialog mydlg,等等。廣義的對象還包括用int,char,float等簡單類型聲明的變數,如int a,char
Time of Update: 2017-01-19
定義:結構體(struct)是由一系列具有相同類型或不同類型的資料構成的資料集合,也叫結構。聲明一個結構體類型的形式是:複製代碼 代碼如下:struct Student{ //聲明一個結構體類型Student int num; //聲明一個整形變數num char name[20];
Time of Update: 2017-01-19
檔案包含的作用所謂“檔案包含”處理是指一個源檔案可以將另外一個源檔案的全部內容包含進來,即將另外的檔案包含到本檔案之中。C++提供了#include命令用來實現“檔案包含”的操作。如在file1.cpp中有以下#include命令: #include
Time of Update: 2017-01-19
關於C++變數的聲明和定義我們已經知道,一個函數一般由兩部分組成:聲明部分和執行語句。聲明部分的作用是對有關的標識符(如變數?函數?結構體?共用體等)的屬性進行說明。對於函數,聲明和定義的區別是明顯的,前邊已說明,函數的聲明是函數的原型,而函數的定義是函數功能的確立。對函數的聲明是可以放在聲明部分中的,而函數的定義顯然不在函數的聲明部分範圍內,它是一個檔案中的獨立模組。對變數而言,聲明與定義的關係稍微複雜一些。在聲明部分出現的變數有兩種情況:一種是需要建立儲存空間的(如i
Time of Update: 2017-01-19
C++內建函式和外部函數函數本質上是全域的,因為一個函數要被另外的函數調用,但是,也可以指定函數只能被本檔案調用,而不能被其他檔案調用。根據函數能否被其他源檔案調用,將函數區分為內建函式和外部函數。內建函式如果一個函數只能被本檔案中其他函數所調用,它稱為內建函式。在定義內建函式時,在函數名和函數類型的前面加static。函數首部的一般格式為: static 類型標識符 函數名(形參表);如 static int fun(int a, int
Time of Update: 2017-01-19
C++變數的儲存類別(動態儲存裝置、靜態儲存、自動變數、寄存器變數、外部變數)動態儲存裝置方式與靜態儲存方式我們已經瞭解了變數的範圍。範圍是從空間的角度來分析的,分為全域變數和局部變數。變數還有另一種屬性——儲存期(storage duration,也稱生命期)。儲存期是指變數在記憶體中的存在期間。這是從變數值存在的時間角度來分析的。儲存期可以分為靜態儲存期(static storage duration)和動態儲存裝置期(dynamic storage