C++学习笔记2020.3.9

C++变量名的定义:

1、在名称中只能使用字母、字符、数字和下划线
2、名称的第一个字符不能是数字
3、C++大小写敏感(区分大小写字符)
4、不能将C++关键字用作名称
5、(重点)双下划线或大写字母开头的名称被保留给现实(编译器及其使用的资源)使用以一个下划线开头的名称被保留给现实,用作全局标识符

C++赋值的方法:(以下的都是合法的)

#include<iostream>
int main(void)
{
	using namespace std;
	int m=10;
	cout<<m<<endl;
	int l(10);
	cout<<l<<endl;
	int n;
	n=10;
	cout<<n<<endl;
	int o={10};
	cout<<o;
	return 0;
}

进制转换:

#include<iostream>
int main(void)
{
	using namespace std;
	int n=16;
	//十六进制 输出 
	cout<<hex;
	cout<<n<<endl;
	//十进制输出 
	cout<<dec;
	cout<<n<<endl;
	//八进制输出 
	cout<<oct;
	cout<<n<<endl;
	return 0;
}

防止程序运行时的闪退情况:

#include<iostream>
int main(void)
{
	using namespace std;
	cin.get();
	return 0;
}

cout.put(ch)输出一个字符,可以代替<<运算符:

#include<iostream>
int main(void)
{
	using namespace std;
	cout.put('!');
	return 0;
}

转义序列:

#include<iostream>
int main(void)
{
	using namespace std;
	cout<<"\\ "<<" \?"<<" \%"<<" %%";
	return 0;
}

大致上与C语言一致,其中%的输出不再使用%%表示

运用转义序列制作的小特效
#include<iostream>
int main(void)
{
	using namespace std;
	cout<<"Please enter your password:_____\b\b\b\b\b";
	long code;
	cin>>code;
	cout<<"What you enter is "<<code<<endl;
	return 0;
} 

通用字符名

C++标准还允许实现提供扩展源字符集和扩展执行字符集

\u 后面是8个十六进制位
\U后面是16个十六进制位

例子:
#include<iostream>
int main(void)
{
	using namespace std;
    cout<<"Let it go g\u20E2teau.\n";
	return 0;
} 

关于wcha_t(需要了解):

wchar_t(宽字符类型)可以表示扩展字符集

wchar_t是一种整型类型,他有足够的空间,可以表示系统使用的最大扩展字符集
cin和cout将输入和输出看作是char流,因此不适于用来处理wchar_t类型。
iostream头文件的最新版本提供了作用类似的工具——wcin和wcout,可用于处理wchar_t

#include<iostream>
int main(void)
{
	using namespace std;
   	wcout<<L"tall"<<endl;
	return 0;
} 

上述代码将把每个字符存储在一个 两个字节 的内存单元中。

关键字const

关键字const叫做限定符,因为他限定了声明的含义

通用格式:
const type name = value;
(功能类似于#define)

const int num=100;
int main(void)
{
	using namespace std;
	cout<<num;
	return 0;
} 

浮点数

一个浮点数可以表示为基准值和缩放因子。

缩放因子的作用就是移动小数点的位置
科学记数法中E或e表示的是10,而不是自然底数

C++有三种浮点类型:float 、double 、long double

这些类型是按他们可以表示的有效数位(数字中有意义的位)和允许的指数最小范围来描述的。

浮点数的输出:
  • 通常cout会删除小数位上结尾的零
  • 可使用cout.setf(ios_base::fixed)格式化输出,可以覆盖上述行为
const int num=100;
int main(void)
{
	using namespace std;
	float n=1.0000;
	cout<<n;
	cout.setf(ios_base::fixed);
	cout<<n<<endl;
	return 0;
} 

C++算术运算符需注意 %的操作数只能是整数

运算符重载简介:

C++根据上下文(这里是操作数的类型)来确定运算符的意义,使用相同的符号进行多种操作叫做运算符重载。
例如:

const int num=100;
int main(void)
{
	using namespace std;
	cout<<3/2<<endl;
	cout<<3.0/2.0<<endl;
	cout<<3.0f/2.0f<<endl;
	cout<<3L/2L<<endl;
	return 0;
} 

整型提升:

c++将bool、char、unsigned char、unsigned short、short转换为int,具体的说说,true被转换为1,false被转换为0,这些转换都被称为整形转换。

如果有一个操作数类型是long double,则另一个操作数转换为long double
否则如果有一个操作数类型是double,则另一个操作数转换为double
否则如果有一个操作数类型是float,则另一个操作数转换为float
否则说明操作数都是整型,实行整型提升
在这种情况下,如果有两个操作数都是有符号的或无符号的,其中一个操作数的级别比另一个低,则转换为级别高的类型
否则如果有一个操作数为有符号的,且无符号操作数的级别比有符号的高,则将有符号操作数转换为无符号操作数所属的类型
否则如果有符号类型可以表示无符号类型的说有可能数值,则无符号操作数转换为有符号操作数所属的类型
否则将两个操作数都转换为有符号类型的无符号版本

强制类型转换

(type) name
type (name)

c++还引入了4个强制类型转换运算符
其中static_cast<>可用于将数值类型转换为另一种数值类型
格式:
static_cast name

C++中的auto声明

在初始化声明中,如果使用关键字auto而不指定变量的类型,编译器会将把变量的类型设置成与初始值相同:

const int num=100;
int main(void)
{
	using namespace std;
	auto n=100;//n是整数
	auto m='s'//s是字符 
	return 0;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值