C++对C的加强(1)——命名空间、输入输出、实用性加强(for、foreach、auto、extern、bool等)

一、命名空间

1、命名空间的作用?
防止变量名、函数名、类名发生命名冲突。
2、如何定义命名空间?
namespace + 空间名 + { }
3、如何使用命名空间?
命名空间名 + :: + 变量名或函数名
!!(注意:命名空间可以嵌套使用)
在这里插入图片描述
4、std :标准命名空间 using namespace std
在这里插入图片描述
举例:输出语句就可以直接用:cout << " " << endl,否则得用:std:: cout <<" " <<endl
5、C语言如何解决命名冲突的问题?
static关键字—> 修饰全局变量、局部变量、函数
当static修饰全局变量时:该全局变量只能在本文件访问,不能在其他文件里访问。

二、输入输出用法
(cout 、cin、 cerr、 clog、endl == 对象)

1、cout输出流、cin输入流、cerr出错输出流、clog日志流、endl刷新缓冲区
2、<< >>输入输出运算符
3、所有的输入输出都是有缓冲区的,缓冲区的类型分为:行缓冲、全缓冲、无缓冲。
4、为什么要刷新缓冲区?
减少与内核交互,提高运行效率
5、刷新缓冲区的方法?
endl对象、cout.flush(); 、 ‘\n’ 、return 0 、cin
在这里插入图片描述
6、cout使用:任意类型组合,比如: cout << “num:” << 5
7、 cin输入(获取输入,遇到空格结束操作)
cin.get(); //消除输入时产生的垃圾在这里插入图片描述
8、cerr 、clog 、cout都是输入,用法一样
在这里插入图片描述
三、实用性加强

1、for 功能增强
1)、声明定义
2)、foreach用法
在这里插入图片描述

2、auto关键字:
在C中,auto修饰的变量称之为自动变量(强调变量的生命周期);
在C++中,auto作类型推导,提高编译效率
例如: int num = 5;
auto num2 = num;

3、extern关键字:
extern(外部的)声明变量或函数为外部链接,即该变量或函数名在其它文件中可见。被其修饰的变量(外部变量)是静态分配空间的,即程序开始时分配,结束时释放。

4、bool类型关键字:(常用于条件判断和函数返回值)
bool(布尔)类型,其值可选为 true或者 false。
C++ 中的 bool 类型可以和 int 混用,具体来说就是 0 代表 false,非 0 代表 true。

5、register关键字:
——作用:尽可能的将修饰的变量保存在cpu的内部寄存器中,省去了CPU到内存中抓取数据的时间,提高程序的运行效率,
——修饰: 不能修饰全局变量,也不能修饰函数,只能修饰局部变量
——使用时的注意事项:
1)不能用&来获取register修饰的变量(&内存地址)
2)register修饰的变量的数据类型一定是CPU所接受的数据类型;
——什么变量用register修饰:频繁访问变量
——C++对register的升级:当用&获取寄存器变量的地址,它会将该变量重新加载到内存中
volatile关键字:防止编译器将所修饰的变量加载到寄存器中进行优化

6、条件运算符(三目运算符):
该运算符由问号(?)和冒号(:)组成,其格式如下:
表达式 ? 表达式 : 表达式

语句实例: x < 0 ? y = 10 : z = 20;
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值