autoh和範圍for和nullptr

2021-09-26 04:55:24 字數 2049 閱讀 9334

1auto

在早期c/c++中auto的含義是:使用auto修飾的變數,是具有自動儲存器的區域性變數

c++11中,

auto不再是乙個儲存型別指示符,而是作為乙個新的型別

指示符來指示編譯器,auto宣告的變數必須由編譯器在編譯時期推導而得。`

int test()

int main()

auto 注意的事項

(1)必須對其進行初始化,在種「型別」的宣告,而是使用auto定義變數時必須對其進行初始化,在編譯階段編譯器需要根據初始化表示式來推導auto的實際型別。因此auto並非是一種「型別」的宣告,而是乙個型別宣告時的「佔位符」,編譯器在編譯期會將auto替換為變數實際的型別。

auto的使用規則

1. auto與指標和引用結合起來使用

用auto宣告指標型別時,用auto和auto*沒有任何區別,但用auto宣告引用型別時則必須加&

int main()

在同一行定義多個變數

當在同一行宣告多個變數時,這些變數必須是相同的型別,否則編譯器將會報錯,因為編譯器實際只對

第乙個型別進行推導,然後用推導出來的型別定義其他變數。

auto a = 1, b = 2;

auto c = 3, d = 4.0; // 該行**會編譯失敗,因為c和d的初始化表示式型別不同

auto不能使用的地方

1 auto不能作為函式的引數

此處**編譯失敗,auto不能作為形參型別,因為編譯器無法對a的實際型別進行推導

void test(auto a)

2auto不能直接用來宣告陣列

void test()

auto b=;

}錯誤3 auto不能定義類的非靜態成員變數

4例項化模板時不能使用auto作為模板引數

2範圍for

void test()

;for (int i = 0; i < sizeof(array) / sizeof(array[0]); ++i)

array[i] = 2;

for (int p = array; p < array + sizeof(array)/ sizeof(array[0]); ++p)

cout << *p << endl; }

for迴圈後的括號由冒號「 :」分為兩部分:第一部分是範圍內用於迭代的變數,

第二部分則表示被迭代的範圍。範圍for與普通的迴圈類似,也可以用continue和break

void test()

;for(auto& e : array) e = 2;

for(auto e : array)

cout << e << " ";

return 0; }

範圍for的使用條件

1範圍必須確定

對於陣列而言,就是陣列中第乙個元素和最後乙個元素的範圍;對於類而言,應該提供begin和end的

方法,beginn和end就是for迴圈迭代的範圍。

void testfor(int array)

null實際是乙個巨集,在傳統的c標頭檔案(stddef.h)中,可以看到如下**

#ifndef null

#ifdef __cplusplus

#define null 0

#else

#define null ((void *)0)

#endif

#endif

可以看到,null可能被定義為字面常量0,或者被定義為無型別指標(void*)的常量。不論採取何種定義,在使用空值的指標時,都不可避免的會遇到一些麻煩比如

void f(int) {

cout<<"f(int)"化為指標型別,

1在使用nullptr表示指標空值時,不需要包含標頭檔案,因為nullptr是c++11作為新關鍵字引入的。

2在c++11中,sizeof(nullptr) 與 sizeof((void*)0)所佔的位元組數相同。

3 為了提高**的健壯性,在後續表示指標空值時建議最好使用nullptr。

範圍管理和範圍蔓延

1 範圍管理的前提 前提是專案的定義。專案是企業哪個戰略方向下的產物,專案想完成哪些具體目標?只有定義明確了,才有範圍。範圍必須緊密圍繞著定義來開展。範圍不足或範圍蔓延都會對專案產生影響 1 範圍管理包括了兩部分 一部分是實體的產品,比如開發出來的一套軟體 另一部分是專案的商業方案 銷售方案 服務體...

範圍確認和範圍控制

範圍確認 範圍確認是專案干係人正式接受已完成的專案範圍的過程。範圍確認需要審查可交付物和工作成果,貫穿於整個專案。輸入工具與技術 輸出1.範圍說明書 2.wbs字典 3.範圍管理計畫 4.交付物 1.檢查 1.已接受的交付物 2.變更申請 3.推薦的糾正措施 輸入4.交付物。那些已經完成或部分完成的...

範圍管理和範圍蔓延

1 範圍管理的前提 前提是專案的定義。專案是企業哪個戰略方向下的產物,專案想完成哪些具體目標?只有定義明確了,才有範圍。範圍必須緊密圍繞著定義來開展。範圍不足或範圍蔓延都會對專案產生影響 2 範圍管理包括了兩部分 一部分是實體的產品,比如開發出來的一套軟體 另一部分是專案的商業方案 銷售方案 服務體...