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。

相关文章
相关标签/搜索