专门做正品的网站有哪些,张家界网站定制,网站层级,标准网站建设合同文章目录 一些基础知识点指针和引用 一些基础知识点
1、十进制的数字比较长的时候#xff0c;可以加方便阅读到底是几位#xff0c;输出的时候跟不加是一样的效果
// 十进制可以加
cout 13890324 endl; // 13890324
// 二进制前加0b
cout 0b111… 文章目录 一些基础知识点指针和引用 一些基础知识点
1、十进制的数字比较长的时候可以加方便阅读到底是几位输出的时候跟不加是一样的效果
// 十进制可以加
cout 13890324 endl; // 13890324
// 二进制前加0b
cout 0b111 endl; //7
// 八进制前加0
cout 011 endl; //9
// 十六进制前加0x
cout 0xf1 endl; //241(1*16^0 f*16^1 241)2、常量
直接使用如cout 123 endl;const 类型 名字 {值} 或 const 类型 名字 值#define 名字 值 没有分号
3、变量定义赋值可以用{}()但最好用大括号{}比较安全
// 如int赋值
int a 7.5; // 编译自动变为7
int a { 7.5 }; // 编译不通过不会降7.5自动变成7安全
// 大括号内什么都不写则默认赋值为04、整型/浮点数的表达 二进制0b11L 八进制011L 十进制121L 十六进制0xf1L 后缀推荐用大写 L/llong型LL/lllong long型U/u无符号型可以与L或LL组合使用如65535ULL floatF/f 如200.0F 不可以是200F 不带后缀一律视为double如200.0 后缀为L的浮点数视为long double如200.0L 5、浮点数运算精确度要注意
float a{ 65923600.0 }, b{ 0.000001 }, c{ a b };
cout (a c ? 1 : 0) endl; // 1
cout a endl; // 6.59236e07
cout b endl; // 1e-06
cout c endl; // 6.59236e07// 这里精度丢失了a和c是相等的6、类型转换
类型转换顺序 有的编译器里int与long是平级关系 int a{ 500 };
unsigned b{ 1000 };
cout a - b endl; // 4294966796这里int转换为了unsigned intlong long a{ 500 };
unsigned b{ 1000 };
cout a - b endl; // -500这里unsigned int转换为了long longint a{ 500 };
unsigned b{ 1000 };
a - b; //a-b为unsigned但赋值给了a转成了int故结果为-500
cout a endl; // -500int a{ 500 };
unsigned b{ 1000 };
// C中的强转
cout (int)(a - b) endl; // -500
// C中的强转:static_cast()
cout static_castint(a - b) endl;7、字符
char charA{ A };
cout charA endl; //Awchar_t wcharA{ La };
cout wcharA endl; // 97
wcout wcharA endl; // wchar_t要用wcout输出a// 没有支持char16_t和char32_t的输出cout只能将其输出为数字
char16_t char16{ ua };
cout char16 endl; // 97char32_t char32{ Ua };
cout char32 endl; // 97注意一下另外三个字符类型要用LuU激活 wchar_t要显示中文需要setlocale(LC_ALL, chs); 8、推断类型
auto 变量名 {初始值}
查看一个变量的类型typeid(变量).name()
auto a{ 200 };
cout a endl; // 200
cout typeid(a).name() endl; // intauto b{ 100LL };
cout b endl; //100
cout typeid(b).name() endl;; // __int64auto c{ 100L };
cout c endl; //100
cout typeid(c).name() endl; // longauto e{ LA };
cout e endl; //65
cout typeid(e).name() endl; // wchar_tauto d{ UA };
cout d endl; //65
cout typeid(d).name() endl; // char32_t9、格式化输出流及转义
格式化输出流操作std::fixed以小数点模式输出浮点数例如3.1415926std::scientific以科学计数法输出浮点数例如3E100std::defaultfloat恢复默认的浮点数输出std::setprecision(int)设置浮点数的精度例如std::setprecision(2)后输出 3.14std::dec以后输出的数字采用十进制输出例如999std::hex以后输出的数字采用十六进制输出例如FFFstd::oct以后输出的数字采用八进制输出例如777std::showbase十六进制和八进制输出前显示前缀例如0xFFFstd::shownobase关闭十六进制和八进制显示前缀std::setw(int)把输出内容设置宽度例如std::setw(10)std::setfill(char)当显示宽度超过字符宽度时用指定字符串填充剩余内容例如std::setfill(*)std::left设置字符对齐模式为左对齐std::right设置字符对齐模式为右对齐 红色部分需要使用相关头文件#include iomanip 10、运算符优先级
C运算符优先级表从上到下从左到右优先级依次减弱。
优先级运算符说明结合性1::范围解析自左向右2 --后缀自增/后缀自减()括号[]数组下标.成员选择对象-成员选择指针3 --前缀自增/前缀自减自右向左 -加/减! ~逻辑非/按位取反(type)强制类型转换*取指针指向的值取某某的地址sizeof取某某的大小new, new[]动态内存分配/动态数组内存分配delete, delete[]动态内存释放/动态数组内存释放4.* -*成员对象选择/成员指针选择自左向右5* / %乘法/除法/取余6 -加号/减号7 位左移/位右移8 小于/小于等于 大于/大于等于9 !等于/不等于10按位与11^按位异或12|按位或13与运算14||或运算15?:三目运算符16赋值自右向左 -相加后赋值/相减后赋值* / %相乘后赋值/相除后赋值/取余后赋值 位左移赋值/位右移赋值 ^ |位与运算后赋值/位异或运算后赋值/位或运算后赋值17throw抛出异常18,逗号自左向右
11、枚举变量
枚举类型可以提高代码的可读性和安全性枚举类型默认是int类型枚举类型成员只能是整数类型枚举类型和其他类型转换需要强制转换默认情况下枚举类型的下一个项的初始值是上一个项的初始值1
enum class EquipLevel :int
{normal 10, armyA normal,high, armyB high,rare, armyC rare,epic, armyD epic,legend, armyE legend,myth, armyF myth
};EquipLevel A{ EquipLevel::normal };
EquipLevel B{ EquipLevel::epic };short diff (int)B - (int)A;
cout diff endl; //3c枚举详细介绍以及具体用法
12、自定义变量名称
#define A TypeName如#define ZS1 inttypedef TypeName A 如typedef int ZS2using A TypeName如using ZS3 int
13、位运算
指针和引用