您现在的位置是:首页 >技术教程 >c++快速学习网站首页技术教程

c++快速学习

星月IWJ 2023-05-07 22:30:01
简介c++快速学习


数据类型
char 8位
short int 16位
long int 32位
int
float
double
long double
bool
wchar_t

开发环境
visual studio

标识符
A-Z 或 a-z 或 _开始 + 字母/下划线/数字
不允许数字开头和出现标点字符
区分大小写

关键字
https://en.cppreference.com/w/cpp/keyword

常量与变量
#define // 编译时出错,很难排错
const // 在编译时出错,可以排错

整数常量
前缀指定基数
后缀指定无符号还是长整型

布尔类型
true
false

字符常量
L'x' // 宽字符常量(wchar_t类型)

是一个转义字符

注释
/*aaa*/
/*
 * bbb
 */

运算符表达式和基本语句

算术运算符
+ - * / % ++ --

关系运算符
== != > < >= <=

逻辑运算符
&& || !

赋值运算符
= += -+ *= /= %=
<<= >>= &= ^= |=

位运算符
& 都为1才为1
| 有1就为1
^ 不同为1, 相同为0
<< 左移
>> 右移

杂项运算符
sizeof
Condition ? X:Y
, 逗号运算符会顺序执行一系列运算,整个表达式的值是以逗号分隔的列表中的最后一个表达式的值
. 和 -> 成员运算符用于引用类,结构和共用体的成员
Cast 强制转换运算符把一种数据类型转换为另一种数据类型
& 指针运算符返回变量的地址
* 指针运算符指向一个变量

结构体
typedef struct {
    short Sunday;
} Week;
Week week;
week.Sunday = 0;
cout << week.Sunday << endl;

运算符优先级
一般来说,一元运算符优先级高于对应的二元运算符
弄不清优先级,就加括号

补码
1,用函数B2T来表示
2,正数直接按位计算权重和,负数保留符号位,对后面每位取反+1

补码数值范围(字长)

字节序
大端法
小端法

位运算
左移(补零)
右移(逻辑右移填充0或算术右移负数填充1)
对有符号的数,尽可能不要使用右移运算

c语言常见问题及c++的解决方案和思考

c语言字符的语法陷阱
char c1 = 'test';
const char* slash1 = "/";
c++使用string类
string s1(1, 'yes');
cout << s1 << endl;
string s2(3, 'yes');
cout << s2 << endl;
string s3(1, 'y');
cout << s3 << endl;
string s4("/");
cout << s4 << endl;
string s5(1, '/');
cout << s5 << endl;
string s6("yes");
cout << s6 << endl;

c语言指针和数组的关系问题
数组退化的问题
传递数组会退化成指针
c++使用stl的容器及引用的使用
vector<int> & v
auto自动定义类型

c语言的移位问题
右移先转换成无符号的形式
移位操作位数的限制: 移位数大于0,小于位数
c++的bitset使用
bitset<10>

c语言强制类型转换问题
比较时发生了隐式的类型转换
运算时发生了隐式的类型转换
c++使用
static_cast
const_cast
dynamic_cast
reinterpret_cast

c语言的整数溢出问题
整型上限溢出
c++boost库使用
https://www.boost.org

c语言字符串的典型缺陷
c++的redis实现

c++容器的实现

序列型容器-数组
int arr[10]={1,2,3,4,5,6,7,8};
二维数组遍历先行后列有利于提供效率

vector是面向对象方式的动态数组

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。