new的用法開闢單變數地址空間使用new運算子時必須已知資料型別,new運算子會向系統堆區申請足夠的儲存空間,如果申請成功,就返回該記憶體塊的首地址,如果申請不成功,則返回零值。new運算子返回的是一個指向所分配型別變數(物件)的指標。對所建立的變數或物件,都是透過該指標來間接操作的,而動態建立的物件本身沒有識別符號名。一般使用格式:格式1:指標變數名=new 型別識別符號;格式2:指標變數名=new 型別識別符號(初始值);格式3:指標變數名=new 型別識別符號 [記憶體單元個數];說明:格式1和格式2都是申請分配某一資料型別所佔位元組數的記憶體空間;但是格式2在記憶體分配成功後,同時將一初值存放到該記憶體單元中;而格式3可同時分配若干個記憶體單元,相當於形成一個動態陣列。例如:1)new int; //開闢一個存放整數的儲存空間,返回一個指向該儲存空間的地址。int *a = new int 即為將一個int型別的地址賦值給整型指標a2)int *a = new int(5) 作用同上,但是同時將整數空間賦值為52.開闢陣列空間對於陣列進行動態分配的格式為:指標變數名=new 型別名[下標表達式];delete [ ] 指向該陣列的指標變數名;兩式中的方括號是非常重要的,兩者必須配對使用,如果delete語句中少了方括號,因編譯器認為該指標是指向陣列第一個元素的指標,會產生回收不徹底的問題(只回收了第一個元素所佔空間),加了方括號後就轉化為指向陣列的指標,回收整個陣列。delete []的方括號中不需要填陣列元素數,系統自知。即使寫了,編譯器也忽略。請注意“下標表達式”不必是常量表達式,即它的值不必在編譯時確定,可以在執行時確定。一維: int *a = new int[100]; //開闢一個大小為100的整型陣列空間二維: int **a = new int[5][6]三維及其以上:依此類推.一般用法: new 型別 (初值)擴充套件資料c語言是一種結構化語言,它有著清晰的層次,可按照模組的方式對程式進行編寫,十分有利於程式的除錯,且c語言的處理和表現能力都非常的強大,依靠非常全面的運算子和多樣的資料型別,可以輕易完成各種資料結構的構建,透過指標型別更可對記憶體直接定址以及對硬體進行直接操作。因此既能夠用於開發系統程式,也可用於開發應用軟體。透過對C語言進行研究分析,總結出其主要特點如下:(1)簡潔的語言C語言包含有各種控制語句僅有9種,關鍵字也只有32 個,程式的編寫要求不嚴格且多以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、檔案管理等功能,如需此類功能,需要透過配合編譯系統所支援的各類庫進行程式設計,故c語言擁有非常簡潔的編譯系統。(2)具有結構化的控制語句C語言是一種結構化的語言,提供的控制語句具有結構化特徵,如for語句、if⋯else語句和switch語句等。可以用於實現函式的邏輯控制,泡麵向過程的程式設計。(3)豐富的資料型別C語言包含的資料型別廣泛,不僅包含有傳統的字元型、整型、浮點型、陣列型別等資料型別,還具有其他程式語言所不具備的資料型別,其中以指標型別資料使用最為靈活,可以透過程式設計對各種資料結構進行計算。(4)豐富的運算子c語言包含34個運算子,它將賦值、括號等均視作運算子來操作,使C程式的表示式型別和運算子型別均非常豐富。(5)可對物理地址進行直接操作C語言允許對硬體記憶體地址進行直接讀寫,以此可以實現組合語言的主要功能,並可直接操作硬體。c語言不但具備高階語言所具有的良好特性,又包含了許多低階語言的優勢,故在系統軟體程式設計領域有著廣泛的應用。(6)程式碼具有較好的可移植性c語言是面向過程的程式語言,使用者只需要關注所被解決問題的本身,而不需要花費過多的精力去了解相關硬體,且針對不同的硬體環境。在用C語言實現相同功能時的程式碼基本一致,不需或僅需進行少量改動便可完成移植,這就意味著,對於一臺計算機編寫的C程式可以在另一臺計算機上輕鬆地執行,從而極大的減少了程式移植的工作強度。(7)可生成的高質量目的碼,高執行效率的程式與其他高階語言相比,C語言可以生成高質量和高效率的目的碼,故通常應用於對程式碼質量和執行效率要求較高的嵌入式系統程式的編寫。
new的用法開闢單變數地址空間使用new運算子時必須已知資料型別,new運算子會向系統堆區申請足夠的儲存空間,如果申請成功,就返回該記憶體塊的首地址,如果申請不成功,則返回零值。new運算子返回的是一個指向所分配型別變數(物件)的指標。對所建立的變數或物件,都是透過該指標來間接操作的,而動態建立的物件本身沒有識別符號名。一般使用格式:格式1:指標變數名=new 型別識別符號;格式2:指標變數名=new 型別識別符號(初始值);格式3:指標變數名=new 型別識別符號 [記憶體單元個數];說明:格式1和格式2都是申請分配某一資料型別所佔位元組數的記憶體空間;但是格式2在記憶體分配成功後,同時將一初值存放到該記憶體單元中;而格式3可同時分配若干個記憶體單元,相當於形成一個動態陣列。例如:1)new int; //開闢一個存放整數的儲存空間,返回一個指向該儲存空間的地址。int *a = new int 即為將一個int型別的地址賦值給整型指標a2)int *a = new int(5) 作用同上,但是同時將整數空間賦值為52.開闢陣列空間對於陣列進行動態分配的格式為:指標變數名=new 型別名[下標表達式];delete [ ] 指向該陣列的指標變數名;兩式中的方括號是非常重要的,兩者必須配對使用,如果delete語句中少了方括號,因編譯器認為該指標是指向陣列第一個元素的指標,會產生回收不徹底的問題(只回收了第一個元素所佔空間),加了方括號後就轉化為指向陣列的指標,回收整個陣列。delete []的方括號中不需要填陣列元素數,系統自知。即使寫了,編譯器也忽略。請注意“下標表達式”不必是常量表達式,即它的值不必在編譯時確定,可以在執行時確定。一維: int *a = new int[100]; //開闢一個大小為100的整型陣列空間二維: int **a = new int[5][6]三維及其以上:依此類推.一般用法: new 型別 (初值)擴充套件資料c語言是一種結構化語言,它有著清晰的層次,可按照模組的方式對程式進行編寫,十分有利於程式的除錯,且c語言的處理和表現能力都非常的強大,依靠非常全面的運算子和多樣的資料型別,可以輕易完成各種資料結構的構建,透過指標型別更可對記憶體直接定址以及對硬體進行直接操作。因此既能夠用於開發系統程式,也可用於開發應用軟體。透過對C語言進行研究分析,總結出其主要特點如下:(1)簡潔的語言C語言包含有各種控制語句僅有9種,關鍵字也只有32 個,程式的編寫要求不嚴格且多以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、檔案管理等功能,如需此類功能,需要透過配合編譯系統所支援的各類庫進行程式設計,故c語言擁有非常簡潔的編譯系統。(2)具有結構化的控制語句C語言是一種結構化的語言,提供的控制語句具有結構化特徵,如for語句、if⋯else語句和switch語句等。可以用於實現函式的邏輯控制,泡麵向過程的程式設計。(3)豐富的資料型別C語言包含的資料型別廣泛,不僅包含有傳統的字元型、整型、浮點型、陣列型別等資料型別,還具有其他程式語言所不具備的資料型別,其中以指標型別資料使用最為靈活,可以透過程式設計對各種資料結構進行計算。(4)豐富的運算子c語言包含34個運算子,它將賦值、括號等均視作運算子來操作,使C程式的表示式型別和運算子型別均非常豐富。(5)可對物理地址進行直接操作C語言允許對硬體記憶體地址進行直接讀寫,以此可以實現組合語言的主要功能,並可直接操作硬體。c語言不但具備高階語言所具有的良好特性,又包含了許多低階語言的優勢,故在系統軟體程式設計領域有著廣泛的應用。(6)程式碼具有較好的可移植性c語言是面向過程的程式語言,使用者只需要關注所被解決問題的本身,而不需要花費過多的精力去了解相關硬體,且針對不同的硬體環境。在用C語言實現相同功能時的程式碼基本一致,不需或僅需進行少量改動便可完成移植,這就意味著,對於一臺計算機編寫的C程式可以在另一臺計算機上輕鬆地執行,從而極大的減少了程式移植的工作強度。(7)可生成的高質量目的碼,高執行效率的程式與其他高階語言相比,C語言可以生成高質量和高效率的目的碼,故通常應用於對程式碼質量和執行效率要求較高的嵌入式系統程式的編寫。