C 11 基於範圍的for迴圈和靜態斷言

2021-10-01 08:01:48 字數 1067 閱讀 6223

在c++中for迴圈可以使用基於範圍的for迴圈,示例**如下

#include

using

namespace std;

void

test01()

;int n =

sizeof

(arr)

/sizeof

(arr[0]

);for(

int i =

0; i < n;

++i)

cout << endl;

for(

int tmp : arr)

cout << endl;

for(

int i =

0; i < n; i++

) cout << endl;

for(

int&tmp : arr)

cout << endl;

}void

test02

(int arr)

cout << endl;

#endif

}int

main

(int argc,

char

** ar**)

c/c++提供了除錯工具assert,這是乙個巨集,用於在執行階段對斷言進行檢查,如果條件為真,執行程式,否則呼叫abort();

void

test03()

c++11新增了關鍵字static_assert,可用於在編譯階段進行測試。

靜態斷言的好處

更早的報告錯誤,我們知道構建是早於執行的,更早的錯誤報告意味著開發成本的降低

減少執行時開銷,靜態斷言是編譯期檢測的,減少執行時開銷

語法

static_assert(常量表示式,提示字串);

注意:只能是常量表示式,變數在編譯期間還沒有分配記憶體(不存在)

void

test04()

基於範圍的for迴圈 C 11

本篇部落格會寫c 11標準的中的乙個新特性範圍for,並解釋它的使用方法。那麼什麼是範圍for呢?在使用早期c 標準的遍歷乙個陣列,我們會使用這段 void testfor for int i 0 i sizeof array sizeof array 0 i 普通迴圈 for int p arra...

auto關鍵字與範圍for迴圈語句(C 11)

1.auto關鍵字 自動型別推導 在c 11中auto有了全新的含義 auto不再是乙個儲存型別指示符,而是作為乙個新的型別指示符來指示編譯器,auto宣告的變數必須由編譯器在編譯時期推導而得 1.舉幾個例子 int testauto intmain 需要注意的是auto並不能代表乙個實際的型別宣告...

基於範圍的for迴圈

1.範圍for的語法 在c 98中如果要遍歷乙個陣列,可以按照以下方式進行 void testfor for int i 0 i sizeof array sizeof array 0 i array i 2 for int p array p array sizeof array sizeof a...