freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

visualc面向?qū)ο蟪绦蛟O(shè)計教程與實驗第二版(編輯修改稿)

2025-02-15 07:13 本頁面
 

【文章內(nèi)容簡介】 at(i)*f的含義是先將變量 i強制類型轉(zhuǎn)換為 float類型 , 然后與變量 f運算 。 (3) 強制類型轉(zhuǎn)換應(yīng)當用在不做轉(zhuǎn)換將影響表達式結(jié)果的正確性或精度 , 或不能完成相應(yīng)運算的場合 。 而對于系統(tǒng)可以自動轉(zhuǎn)換類型的場合 , 則沒有必要使用 。 說明: 動態(tài)內(nèi)存的分配與釋放 指針變量 = new 數(shù)據(jù)類型 。 new從堆內(nèi)存中為程序分配可以保存某種類型數(shù)據(jù)的一塊內(nèi)存空間 , 并返回指向該內(nèi)存的首地址 , 該地址存放于指針變量中 。 堆內(nèi)存可以按照要求進行分配 , 程序?qū)?nèi)存的需求量隨時會發(fā)生變化 , 有時程序在運行中可能會不再需要由 new分配的內(nèi)存空間 , 而且程序還未運行結(jié)束 ,這時就需要把先前占用的內(nèi)存空間釋放給堆內(nèi)存 , 以后重新分配 , 供程序的其它部分使用 。 運算符 delete用于釋放 new分配的內(nèi)存空間 , 它的使用形式為: delete 指針變量; 其中的指針變量保存著 new動態(tài)分配的內(nèi)存的首地址 。 3. 注意: (1) 用 new獲取的內(nèi)存空間 , 必須用 delete進行釋放; (2) 對一個指針只能調(diào)用一次 delete; (3) 用 delete運算符作用的對象必須是用 new分配的內(nèi)存空間的首地址 。 include iostream using namespace std。 void main() {int *p。 p=new int。 // 分配內(nèi)存空間 *p=5。 cout*p。 delete p。 }// 釋放內(nèi)存空間 【 例 】 new與 delete應(yīng)用舉例。 在用 new分配內(nèi)存的同時進行初始化 。 使用形式為: 指針變量 = new 數(shù)據(jù)類型 ( 初始值 ) ; 例如上例中的: p=new int。 *p=5。 也可寫成: p=new int(5); 指針變量 = new 數(shù)據(jù)類型 [數(shù)組大小 ]; 此時指針變量指向第一個數(shù)組元素的地址 。 使用 new分配數(shù)組時 , 不能提供初始值 。 使用 new建立的數(shù)組變量也由 delete釋放 。 其形式為: delete 指針變量;或 delete [ ]指針變量; 同樣 , 也可以用 new來為多維數(shù)組分配空間 , 但是除第一維可以為變量外 , 其它維數(shù)都必須是常量 。 4.用 new建立數(shù)組類型的變量 注意在使用 delete時 , 不用考慮數(shù)組的維數(shù) 。 有時 , 并不能保證一定可以從堆內(nèi)存中獲得所需空間 ,當不能成功地分配到所需要的內(nèi)存時 , new返回 0, 即空指針 。 因此我們可以通過判斷 new的返回值是否為 0, 來得知系統(tǒng)中是否有足夠的空閑內(nèi)存來供程序使用 。 例如:int *p= new int[100]。 if(p==0) {cout can’t allocate more memory,terminating. endl。 exit(1)。} 其中 exit函數(shù)的作用是終止程序運行 。 include iostream using namespace std。 void main() { int n。 // 定義數(shù)組元素的個數(shù) int *p。 cout please input the length of the array : 。 cinn。 【 例 】 從堆內(nèi)存中獲取一個整型數(shù)組,賦值后并打印出來。 if((p=new int[n])==0) {cout can39。t allocate more memory,terminating. endl。 exit(1)。 } // 分配內(nèi)存空間 for( int i=0。in。i++) p[i]= i *2。 coutNow output the array : endl。 for( i=0。in。i++) coutp[i] 。 coutendl。 delete []p。 // 釋放內(nèi)存空間 } 作用域運算符 :: 通常情況下,如果全局變量與局部變量同名,那么局部變量在其作用域內(nèi)具有較高的優(yōu)先權(quán)。 C語言規(guī)定只能在變量的作用域內(nèi)使用該變量,不能使用其他作用域中的變量,可采用C++中提供的作用域運算符 ::,它能指定所需要的作用域。 注意: 不能用 ::訪問函數(shù)中的局部變量。在 C++語言中作用域運算符 ::還用來限定類的成員, include iostream using namespace std。 float a=。 // 全局變量 void main() { int a=8。 // 局部變量 coutaendl。 cout::aendl。 // ::a表示全局作用域中的變量 a } 引用 引用是 C++語言的一個特殊的數(shù)據(jù)類型描述 , 用于在程序的不同部分使用兩個以上的變量名指向同一地址 , 使得對其中任一個變量的操作實際上都是對同一地址單元進行的 。 在這種兩個以上變量名的關(guān)系上 ,被聲明為引用類型的變量名則是實際變量名的別名 。 引用運算符為 amp。, 聲明引用的一般形式為: 數(shù)據(jù)類型 amp。引用變量名 = 變量名; 或 數(shù)據(jù)類型 amp。 引用變量名 = 變量名; 或 數(shù)據(jù)類型 amp。 引用變量名 = 變量名; 對引用進行操作,實際上就是對被引用的變量進行操作。引用不是值,不占存儲空間,聲明引用時,目標的存儲狀態(tài)不會改變。引用一旦被初始化,就不能再重新賦值。 【 例 】 引用舉例 。 include void main() { int num=50; int amp。ref=num; ref+=10; coutnum=numendl; cout ref=refendl。 num+=40; cout num=numendl; coutref=refendl。 } 說明: (1) 在一行上聲明多個引用型變量 (函數(shù) )名時 , 要在每個變量 (函數(shù) )名前都冠以 “ amp。”符號 。 (2) 引用不是變量 , 所以引用本身不能被修改 , 在程序中對引用的存取都是對它所引用的變量的存取 。 (3) 一個變量被聲明為引用時必須進行初始化 , 除非這個引用是用作函數(shù)的參數(shù)或返回值 , 為引用提供的初始值應(yīng)為變量 ( 包括對象 ) 。 引用一旦被初始化 ,就不能再重新賦值 。 如 ref=amp。j。但 ref=j。是允許的 。 (4) 由于引用不是變量 , 所以 , 不能說明引用的引用 ,也不能說明數(shù)組元素的類型為引用數(shù)組 , 或指向引用的指針 。 例如: int amp。a[5]。 // 錯誤 int amp。*p。 // 錯誤 由于指針也是變量 , 因此可以說明對指針變量的引用 。例如: int *a。 int *amp。p=a。 int b。 p=amp。b。 // a指向變量 b (5) 引用與指針不同 。 指針的內(nèi)容或值是某一變量的內(nèi)存單元地址 , 而引用則與初始化它的變量具有相同的內(nèi)存單元地址 。 指針是個變量 , 可以把它再賦值成其它的地址 , 然而 , 建立引用時必須進行初始化并且決不會再指向其它不同的變量 。 (6) 要注意區(qū)分引用運算符和地址運算符的區(qū)別 。 例如: int num=50。 int amp。ref=num。 int *p=amp。ref。 (7) 可以用一個引用初始化另一個引用 。 例如: int num=50。 int amp。ref1=num。 int amp。ref2=ref1。 ref2=100。 // num被修改為 100 其中 ref2也是對 num的引用 。 (8) 可以把 函數(shù)的參數(shù)說明成引用 以建立函數(shù)參數(shù)的引用傳遞方式 。(9) 有空指針 , 無空引用 (10) 引用不能用數(shù)據(jù)類型來初始化 。 如: intamp。ref=int; // error (11) 函數(shù)調(diào)用可以作為左值 引用表達式是一個左值表達式 , 因此它可以出現(xiàn)在形 、 實參數(shù)的任何一方 。 若一個函數(shù)返回了引用 , 那么該函數(shù)的調(diào)用也可以被賦值 。 一般說 , 當返回值不是本函數(shù)內(nèi)定義的局部變量時就可以返回一個引用 。 在通常情況下 , 引用返回值只用在需對函數(shù)的調(diào)用重新賦值的場合 , 也就是對函數(shù)的返回值重新賦值的時候 。 避免將局部作用域中變量的地址返回 , 就使函數(shù)調(diào)用表達式作為左值來使用 。 【 例 】 統(tǒng)計學生中 A類學生與 B類學生各為多少個 。 A類學生的標準是平均分在 80分以上 , 其余都是 B類學生 。 【 例 】 返回的局部作用域內(nèi)的變量 , 函數(shù)作為左值 。 const修飾符 define PI const float PI=。 這個常量是有類型的 , 它有地址 , 可以用指針指向這個值 , 但不能修改它 。 C++建議用const取代 define定義常量 。 注意: (1) 使用 const修飾符定義常量時 , 必須初始化 ; (2) 常量一旦被定義 , 在程序中任何地方都 不能 再更改 。 (3) 如果用 const定義的是一個整型常量 , int可以省略 。 (4) 與 define定義的常量有所不同 , const定義的常量可以 有自己的數(shù)據(jù)類型 , 這樣 C++編譯程序可以進行更加嚴格的類型檢查 , 具有良好的編譯時的檢測性 。 (5) 函數(shù)參數(shù)也可以用 const說明,用于保證實參在該函數(shù)內(nèi)部不被改動,大多數(shù) C++編譯器能對具有const參數(shù)的函數(shù)進行更好的代碼優(yōu)化。例如,通過函數(shù) max求出整型數(shù)組 a[100]中的最大值,函數(shù)原型應(yīng)該是: int max(const int*pa)。 這樣做的目的是確保原數(shù)組的數(shù)據(jù)不被破壞,即在函數(shù)中對數(shù)組元素的操作只許讀,不許寫。 const與指針一起使用的組合情況 : (1) 指向常量的指針 指向常量的指針是指一個指向常量的指針變量 。const char*pc=abcd。 聲明指向常量的指針變量 pc, 它指向一個字符串常量 由于使用了 const, 不允許改變指針所指的常量 ,因此以下語句是錯誤的: pc[3]=39。x39。 但是由于 pc是一個指向常量的普通指針變量 , 不是常指針 , 因此可以改變 pc的值 。 例如以下語句是允許的:pc=jkkk。 const與指針一起使用的組合情況 : (2) 常指針 常指針是指指針本身 , 而不是它指向的對象聲明為常量 。 例如: char*const pc=abcd。 // 常指針 這個語句的含義為:聲明一個名為 pc的指針變量 ,該指針是指向字符型數(shù)據(jù)的常指針 , 用 “ abcd”的地址初始化該常指針 。 創(chuàng)建一個常指針 , 就是創(chuàng)建不能移動的固定指針 , 但是它所指的數(shù)據(jù)可以改變 。 例如: pc[3]=39。x39。 // 合法 pc=dfasdfa。 // 不合法 const與指針一起使用的組合情況 : (3) 指向常量的常指針 整個指針本身不能改變 , 它所指向的值也不能改變 。要聲明一個指向常量的常指針 , 二者都要聲明為 const。例如: const char* const pc=abcd。 // 指向常量的常指針 這個語句的含義為:聲明一個名為 pc的指針變量 ,它是一個指向字符型常量的常指針 , 用 “ abcd”的地址初始化該指針 。 以下兩個語句都是錯誤的: pc[3]=39。x39。 // 錯誤 , 不能改變指針所指的值 pc=dfasdfa。 // 錯誤 , 不能改變指針本身 字符串 除了計算外 , 文本處理也是編程過程中一個非常重要的方面 。 在 C語言中使用字符數(shù)組和字符指針實現(xiàn)字符串 , 但是在 C++中提供了一種既方便又好用的 string類型 。 下面通過一個簡單的例子說明 string類型的使用 。 【 例 】 字符串類 string的使用 。 C++語言中函數(shù)的新特性 函數(shù)原型 ( Function Prototype) 內(nèi)聯(lián) ( inline) 函數(shù) 帶缺省參數(shù)的函數(shù) 函數(shù)重載 ( overload) 函數(shù)模板 ( function template) ? C++要求為每一個函數(shù)建立原型 , 用以說明 函數(shù)的名稱 、 參數(shù)個數(shù)及類型和函數(shù)返回值的類型 。 ? 其主要目的是讓 C++編譯程序進行類型檢查 , 即形參與實參的類型匹配檢查 , 以及返回值是否與原型相符 , 以維護程序的正確性 。 所以應(yīng)養(yǎng)成將聲明與定義分別編寫的編程習
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1