1、for功能增强
//功能一
for(int i =0;i<3;i++)
{
cout << i << endl;
}
//功能二
int array[3] = {1,5,6};
for(int temp : array ) //foreach用法直接数组内容依次传给temp
{
cout << temp << endl;
}
2、auto关键字
(1)C++中auto:类型推导 。
(2)C语言中auto修饰的变量称之为自动变量(生命周期)。
int num = 3;
auto num2 = num;
cout << num2 << endl;
3、bool类型
C++在C语言的基本类型系统之上增加了bool,其类型变量的取值只有true(非0)和false(0)。理论上bool只占用一个字节,但是如果多个bool变量定义在一起,可能会各占一个bit(取决于编译器的实现)。
bool flag = true;
while(flag)
{
cout << “hi” <<
endl;
flag = false;
}
4、三目条件运算符
C++中的三目条件运算符:
(1)当可能返回的值中为两个变量时,允许作为左值。
例如:( a < b ? a :
b ) = 12
(2)当可能返回的值中如果有一个是常量值时,则不能作为左值使用。
例如:(a < b ?
1 : b )= 30
原因:C语言返回变量的值,而C++语言是返回变量本身。
int a=3;
int b=4;
(a>b?a:b)=7;
cout << a<<b<<endl;
以上实用性增强测试完整代码及其结果:
#include
using
namespace std;
int main()
{
//for
for(int i =0;i<3;i++)
{
cout << i << endl;
}
int array[3] = {1,5,6};
for(int temp : array ) //freach
{
cout << temp << endl;
}
//auto
int num = 3;
auto num2 = num;
cout << num2 << endl;
//bool
bool flag = true;
while(flag)
{
cout << “hi” <<
endl;
flag = false;
}
//三目条件运算符
int a=3;
int b=4;
(a>b?a:b)=7;
cout << a<<b<<endl;
return 0;
}
2020.03.06
嵌入式面向对象编程课程·C++对C的加强
二、实用性加强
5、register关键字
(与volatile联系起来)(C语言
VS C++)
C语言:
(1)
作用:尽可能地将修饰的变量保存在cpu的内部寄存器中,省去了cpu到内存中抓取数据的时间,提高程序的运行效率。
(2)
修饰对象:频繁访问的变量。
(不能修饰全局变量,也不能修饰函数,只能修饰局部变量)
(3)
格式: 如:register int num
= 5 ;
(4)
注意事项:
①不能用&来获取register修饰的变量(变量在寄存器中,无法取数据所在内存地址);
②register修饰变量的数据类型:一定为cpu所接受的数据类型。
(5)
static:既能修饰局部变量,又能修饰全局变量,也可修饰函数。
(6)
volatile:防止编译器将修饰变量加载到寄存器中进行优化(格式volatile int
count = 5)。
C++升级:
升级:当用&获取寄存器变量的地址时,会将该变量重新加载到内存中。(可使用 &)