C++auto,for範圍循環,指針空值

1.auto程序員

1.C中,auto的含義是修飾一個變量爲局部變量。而如今C++中auto即自動類型推導,會根據值自動推導變量類型。而函數形參不能用auto修飾,由於定義的時候沒有初始化。數組

2. 在同一行定義多個變量 當在同一行聲明多個變量時,這些變量必須是相同的類型,不然編譯器將會報錯,由於編譯器實際只對 第一個類型進行推導,而後用推導出來的類型定義其餘變量。函數

3.auto修飾引用變量時,必須加‘’&‘’。auto不能用來聲明數組。指針

4. 爲了不與C++98中的auto發生混淆,C++11只保留了auto做爲類型指示符的用法編譯器

5. auto在實際中常見的優點用法就是跟之後會講到的C++11提供的新式for循環,還有lambda表達式等 進行配合使用for循環

2.範圍for循環編譯

對於一個有範圍的集合而言,由程序員來講明循環的範圍是多餘的,有時候還會容易犯錯誤。所以C++11中 引入了基於範圍的for循環。for循環後的括號由冒號「 :」分爲兩部分:第一部分是範圍內用於迭代的變量, 第二部分則表示被迭代的範圍。class

例如int arr[2]={1,2};則能夠for(int i : arr)或者for(int& i : arr);。變量

範圍for的使用條件 
1. for循環迭代的範圍必須是肯定的 對於數組而言,就是數組中第一個元素和後一個元素的範圍;對於類而言,應該提供begin和end的 方法,begin和end就是for循環迭代的範圍。 lambda

3.指針空值

若是想將一個指針設爲空值,能夠int* p=NULL;NULL的本質就是0,能夠查看NULL的定義,會發現是一個宏。這樣的話有可能會產生一些問題。可是C++中給指針設定了一個空值,即int* p=nullptr,它表明的就是空指針,而不是0。

相關文章
相關標籤/搜索