学习c++的第四天
目录
运算符
算术运算符
关系运算符
逻辑运算符
位运算符
赋值运算符
杂项运算符
运算符优先级
运算符
算术运算符
算术运算符是 C++ 中用于执行基本算术操作的运算符。
- 加法运算符 (+):将两个操作数相加。例如,A + B 将得到 30,因为 10 + 20 等于 30。
- 减法运算符 (-):从第一个操作数中减去第二个操作数。例如,A - B 将得到 -10,因为 10 - 20 等于 -10。
- 乘法运算符 (*):将两个操作数相乘。例如,A * B 将得到 200,因为 10 * 20 等于 200。
- 除法运算符 (/):将第一个操作数除以第二个操作数。例如,B / A 将得到 2,因为 20 / 10 等于 2。请注意,如果操作数都是整数,则结果将取整数部分,而不是浮点数。
- 取模运算符 (%):计算第一个操作数除以第二个操作数的余数。例如,B % A 将得到 0,因为 20 没有被 10 整除时余数为 0。
- 自增运算符 (++):将整数值增加 1。例如,A++ 将使 A 的值从 10 增加到 11。
- 自减运算符 (--):将整数值减少 1。例如,A-- 将使 A 的值从 10 减少到 9。
这些算术运算符可用于各种数据类型,包括整数和浮点数。
请注意,C++ 还支持复合赋值运算符,如 +=、-=、*=、/= 和 %=,它们可以将算术运算符与赋值运算符组合起来,简化代码编写。
实例
#include <iostream>int main() {int A = 10;int B = 20;// 加法运算符int sum = A + B;std::cout << "A + B = " << sum << std::endl;// 减法运算符int diff = A - B;std::cout << "A - B = " << diff << std::endl;// 乘法运算符int product = A * B;std::cout << "A * B = " << product << std::endl;// 除法运算符int quotient = B / A;std::cout << "B / A = " << quotient << std::endl;// 取模运算符int remainder = B % A;std::cout << "B % A = " << remainder << std::endl;// 自增运算符A++;std::cout << "After A++, A = " << A << std::endl;// 自减运算符B--;std::cout << "After B--, B = " << B << std::endl;return 0;
}
输出结果为:
A + B = 30
A - B = -10
A * B = 200
B / A = 2
B % A = 0
After A++, A = 11
After B--, B = 19
关系运算符
下面是 C++ 中常用的关系运算符及其描述
- 等于运算符 (==):检查两个操作数是否相等,如果相等则返回 true,否则返回 false。
- 不等于运算符 (!=):检查两个操作数是否不相等,如果不相等则返回 true,否则返回 false。
- 大于运算符 (>):检查第一个操作数是否大于第二个操作数,如果是则返回 true,否则返回 false。
- 大于运算符 (>):检查第一个操作数是否大于第二个操作数,如果是则返回 true,否则返回 false。
- 小于运算符 (<):检查第一个操作数是否小于第二个操作数,如果是则返回 true,否则返回 false。
- 大于等于运算符 (>=):检查第一个操作数是否大于等于第二个操作数,如果是则返回 true,否则返回 false。
- 小于等于运算符 (<=):检查第一个操作数是否小于等于第二个操作数,如果是则返回 true,否则返回 false。
实例
#include <iostream>
using namespace std;int main() {int A = 10;int B = 20;// 示例:检查两个操作数的值是否相等if (A == B) {cout << "A等于B" << endl;} else {cout << "A不等于B" << endl;}// 示例:检查两个操作数的值是否不相等if (A != B) {cout << "A不等于B" << endl;} else {cout << "A等于B" << endl;}// 示例:检查左操作数的值是否大于右操作数的值if (A > B) {cout << "A大于B" << endl;} else {cout << "A不大于B" << endl;}// 示例:检查左操作数的值是否小于右操作数的值if (A < B) {cout << "A小于B" << endl;} else {cout << "A不小于B" << endl;}// 示例:检查左操作数的值是否大于或等于右操作数的值if (A >= B) {cout << "A大于等于B" << endl;} else {cout << "A小于B" << endl;}// 示例:检查左操作数的值是否小于或等于右操作数的值if (A <= B) {cout << "A小于等于B" << endl;} else {cout << "A大于B" << endl;}return 0;
}
输出结果为:
A不等于B
A不等于B
A不大于B
A小于B
A小于B
A小于等于B
逻辑运算符
在C++中,逻辑运算符用于对布尔值进行操作和组合。常用的逻辑运算符有三个:逻辑与(&&),逻辑或(||)和逻辑非(!)。
逻辑与(&&)运算符:
- 用于检查多个条件是否同时为真。
- 当且仅当所有条件都为真时,整个表达式的结果才为真。
- 如果任何一个条件为假,则整个表达式的结果为假。
逻辑或(||)运算符:
- 用于检查多个条件是否有至少一个为真。
- 当任何一个条件为真时,整个表达式的结果就为真。
- 只有当所有条件都为假时,整个表达式的结果才为假。
逻辑非(!)运算符:
- 用于对单个条件进行取反操作。
- 如果条件为真,则取反后为假;如果条件为假,则取反后为真。
实例
#include <iostream>
using namespace std;int main() {bool condition1 = true;bool condition2 = false;// 示例:逻辑与运算符if (condition1 && condition2) {cout << "Both condition1 and condition2 are true." << endl;}else {cout << "At least one of condition1 and condition2 is false." << endl;}// 示例:逻辑或运算符if (condition1 || condition2) {cout << "At least one of condition1 and condition2 is true." << endl;}else {cout << "Both condition1 and condition2 are false." << endl;}// 示例:逻辑非运算符if (!condition1) {cout << "condition1 is false." << endl;}else {cout << "condition1 is true." << endl;}return 0;
}
在这个示例中,我们定义了两个布尔变量 condition1 和 condition2,并使用逻辑运算符来检查它们的值。根据条件的不同结果,我们输出相应的消息。
输出结果为:
At least one of condition1 and condition2 is false.
At least one of condition1 and condition2 is true.
condition1 is true.
位运算符
位运算符作用于位,通过逐位进行操作。下面是位运算符的一些常见示例及其描述:
按位与(&)运算符:
- 对两个操作数的每一个二进制位进行操作。
- 当且仅当两个操作数相应的二进制位都为1时,结果为1,否则为0。
按位或(|)运算符:
- 对两个操作数的每一个二进制位进行操作。
- 当两个操作数相应的二进制位中至少有一个为1时,结果为1,否则为0。
按位异或(^)运算符:
- 对两个操作数的每一个二进制位进行操作。
- 当且仅当两个操作数相应的二进制位不同时,结果为1,否则为0。
按位取反(~)运算符:
- 只对一个操作数的每一个二进制位进行操作。
- 结果是操作数的每一个二进制位取反。
左移位(<<)运算符:
- 将一个操作数的二进制位向左移动指定数量的位数。
- 向左移动时,右边的位用0填充。
右移位(>>)运算符:
- 将一个操作数的二进制位向右移动指定数量的位数。
- 向右移动时,左边的位用符号位填充。
假设变量A的值为60(二进制为0011 1100),变量B的值为13(二进制为0000 1101)。根据不同的运算符和操作数,以下是它们的运算结果:
A & B 的结果为12(二进制为0000 1100)
A | B 的结果为61(二进制为0011 1101)
A ^ B 的结果为49(二进制为0011 0001)
~A 的结果为-61(二进制为1100 0011,有符号二进制数的补码形式)
A << 2 的结果为240(二进制为1111 0000)
A >> 2 的结果为15(二进制为0000 1111)
以上是位运算符的常见用法。它们在处理位级操作时非常有用。
实例
以下是使用位运算符的示例代码:
#include <iostream>
using namespace std;int main() {int num1 = 5; // 二进制为101int num2 = 9; // 二进制为1001// 示例:按位与运算符int result1 = num1 & num2;cout << "num1 & num2 的结果为:" << result1 << endl; // 输出:1(二进制为001)// 示例:按位或运算符int result2 = num1 | num2;cout << "num1 | num2 的结果为:" << result2 << endl; // 输出:13(二进制为1101)// 示例:按位异或运算符int result3 = num1 ^ num2;cout << "num1 ^ num2 的结果为:" << result3 << endl; // 输出:12(二进制为1100)// 示例:按位取反运算符int result4 = ~num1;cout << "~num1 的结果为:" << result4 << endl; // 输出:-6(二进制为11111111111111111111111111111010)// 示例:左移位运算符int result5 = num1 << 1;cout << "num1 << 1 的结果为:" << result5 << endl; // 输出:10(二进制为1010)// 示例:右移位运算符int result6 = num2 >> 1;cout << "num2 >> 1 的结果为:" << result6 << endl; // 输出:4(二进制为100)return 0;
}
赋值运算符
下表列出了 C++ 支持的赋值运算符:
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符,把右边操作数的值赋给左边操作数 | C = A + B 将把 A + B 的值赋给 C |
+= | 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 | C += A 相当于 C = C + A |
-= | 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 | C -= A 相当于 C = C - A |
*= | 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 | C *= A 相当于 C = C * A |
/= | 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 | C /= A 相当于 C = C / A |
%= | 求模且赋值运算符,求两个操作数的模赋值给左边操作数 | C %= A 相当于 C = C % A |
<<= | 左移且赋值运算符 | C <<= 2 等同于 C = C << 2 |
>>= | 右移且赋值运算符 | C >>= 2 等同于 C = C >> 2 |
&= | 按位与且赋值运算符 | C &= 2 等同于 C = C & 2 |
^= | 按位异或且赋值运算符 | C ^= 2 等同于 C = C ^ 2 |
|= | 按位或且赋值运算符 | C |= 2 等同于 C = C | 2 |
实例
#include <iostream>
using namespace std;int main() {int a = 10, b = 5;// 简单赋值运算符int c = a;cout << "c = " << c << endl;// 加且赋值运算符c += a;cout << "c += a: " << c << endl;// 减且赋值运算符c -= b;cout << "c -= b: " << c << endl;// 乘且赋值运算符c *= a;cout << "c *= a: " << c << endl;// 除且赋值运算符c /= b;cout << "c /= b: " << c << endl;// 求模且赋值运算符c %= a;cout << "c %= a: " << c << endl;// 左移且赋值运算符c <<= 2;cout << "c <<= 2: " << c << endl;// 右移且赋值运算符c >>= 1;cout << "c >>= 1: " << c << endl;// 按位与且赋值运算符c &= 3;cout << "c &= 3: " << c << endl;// 按位异或且赋值运算符c ^= 7;cout << "c ^= 7: " << c << endl;// 按位或且赋值运算符c |= 15;cout << "c |= 15: " << c << endl;return 0;
}
输出结果为:
c = 10
c += a: 20
c -= b: 15
c *= a: 150
c /= b: 30
c %= a: 0
c <<= 2: 0
c >>= 1: 0
c &= 3: 0
c ^= 7: 7
c |= 15: 15
杂项运算符
- sizeof:sizeof 运算符用于获取变量或类型的大小(以字节为单位)。例如,sizeof(int) 返回整数类型的大小。
- Condition ? X : Y:条件运算符是一种三元运算符,根据条件的真假选择返回不同的值。如果条件为真,则返回 X,否则返回 Y。例如,(a > b) ? a : b 将返回 a 或 b 中较大的值。
- , 逗号运算符:逗号运算符用于顺序执行一系列表达式,并返回最后一个表达式的值。在多个表达式之间使用逗号表示它们按顺序执行。例如,int x = (a = 1, a + 2),逗号运算符会先执行 a = 1,然后执行 a + 2,将结果赋给 x。
- .(点)和 ->(箭头):这两个运算符用于访问类、结构体和共用体的成员。. 运算符用于直接访问已知对象的成员,而 -> 运算符用于通过指针访问对象的成员。例如,obj.member 和 ptr->member。
- Cast 强制转换运算符:强制转换运算符用于将一种数据类型转换为另一种数据类型。可以使用不同的强制转换操作符进行类型转换,例如 int(2.2) 将浮点数转换为整数。
- & 指针运算符:& 运算符用于获取变量的地址,并返回指向该变量的指针。例如,int* ptr = &a 将 a 的地址赋给指针 ptr。
- * 指针运算符:* 运算符用于解引用指针,获取指针所指向的对象的值。例如,int value = *ptr 将获取指针 ptr 所指向的对象的值。
这些运算符在 C++ 编程中广泛使用,对于正确的数据处理和操作是至关重要的。
实例
#include <iostream>
using namespace std;int main() {int a = 10;int b = 5;int c = 0;// sizeof 运算符cout << "Size of int: " << sizeof(int) << " bytes" << endl;// 条件运算符c = (a > b) ? a : b;cout << "Greater value: " << c << endl;// 逗号运算符int x = (c = 1, c + 2);cout << "Comma operator result: " << x << endl;// 成员运算符struct Person {string name;int age;};Person person;person.name = "John";person.age = 25;cout << "Person name: " << person.name << ", age: " << person.age << endl;// 强制转换运算符double d = 2.2;int i = int(d);cout << "Double to int conversion: " << i << endl;// 指针运算符int* ptr = &a;cout << "Address of a: " << ptr << endl;cout << "Value at address: " << *ptr << endl;return 0;
}
这段代码演示了以下操作:
- 使用 sizeof 运算符获取 int 类型的大小。
- 使用条件运算符根据条件选择较大的值。
- 使用逗号运算符执行多个表达式,并返回最后一个表达式的值。
- 使用成员运算符访问结构体成员。
- 使用强制转换运算符将 double 类型转换为 int 类型。
- 使用指针运算符获取变量的地址,并解引用指针获取变量的值。
输出结果为:
Size of int: 4 bytes
Greater value: 10
Comma operator result: 3
Person name: John, age: 25
Double to int conversion: 2
Address of a: 000000D6246FF6C4
Value at address: 10
运算符优先级
下表将按运算符优先级从高到低列出各个运算符,具有较高优先级的运算符出现在表格的上面,具有较低优先级的运算符出现在表格的下面。在表达式中,较高优先级的运算符会优先被计算。
类别 | 运算符 | 结合性 |
---|---|---|
后缀 | () [] -> . ++ - - | 从左到右 |
一元 | + - ! ~ ++ - - (type)* & sizeof | 从右到左 |
乘除 | * / % | 从左到右 |
加减 | + - | 从左到右 |
移位 | << >> | 从左到右 |
关系 | < <= > >= | 从左到右 |
相等 | == != | 从左到右 |
位与 AND | & | 从左到右 |
位异或 XOR | ^ | 从左到右 |
位或 OR | | | 从左到右 |
逻辑与 AND | && | 从左到右 |
逻辑或 OR | || | 从左到右 |
条件 | ?: | 从右到左 |
赋值 | = += -= *= /= %=>>= <<= &= ^= |= | 从右到左 |
逗号 | , | 从左到右 |
实例
#include <iostream>
using namespace std;int main() {int a = 10;int b = 5;int c = 2;int result = a + b * c; // 先计算 b * c,再加上 a,结果为 20cout << "a + b * c = " << result << endl;result = (a + b) * c; // 先加 a 和 b,再乘以 c,结果为 30cout << "(a + b) * c = " << result << endl;bool x = true;bool y = false;bool result1 = x && y || !x; // 先计算逻辑与 x && y,再计算逻辑或 ||,最后取非 !x,结果为 truecout << "x && y || !x = " << result1 << endl;bool result2 = x || !y && x; // 先计算取非 !y,再计算逻辑与 !y && x,最后计算逻辑或 x || (!y && x),结果为 truecout << "x || !y && x = " << result2 << endl;int num = 5;int num2 = 10;num += num2 * 2; // 先计算 num2 * 2,再将结果加到 num 上,等价于 num = num + (num2 * 2),最后 num 的值为 25cout << "num += num2 * 2: " << num << endl;int value = (num > num2) ? num : num2; // 先比较 num 和 num2 的大小,根据条件返回较大的值,最后 value 的值为 25cout << "value = " << value << endl;return 0;
}
这段代码演示了以下操作:
- 展示了不同优先级运算符的计算顺序。
- 展示了逻辑运算符的使用,包括逻辑与(&&)和逻辑或(||)。
- 展示了赋值运算符的使用,包括复合赋值运算符(+=)。
- 展示了条件运算符(?:)的使用。
输出结果为:
a + b * c = 20
(a + b) * c = 30
x && y || !x = 0
x || !y && x = 1
num += num2 * 2: 25
value = 25
相关文章:
学习c++的第四天
目录 运算符 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 运算符优先级 运算符 算术运算符 算术运算符是 C 中用于执行基本算术操作的运算符。 加法运算符 ():将两个操作数相加。例如,A B 将得到 30,因为 …...

BIOS开发笔记 – 显示
UEFI启动流程跑完前三阶段,UEFI环境的准备基本完成,到BDS阶段的任务就是准备引导OS。在此之前还需要使一些必要的硬件工作起来,比如键盘设备,屏幕等,怎么让屏幕工作呢?简单的说就是执行其相关的UEFI驱动。要注意一下的是,这里所说的驱动并不是屏幕的驱动,而是GPU的驱动…...

数据库实验:SQL的数据视图
目录 视图概述视图的概念视图的作用 实验目的实验内容实验要求实验过程 视图概述 视图是由数据库中的一个表或多个表导出的虚拟表,其作用是方便用户对数据的操作 视图的概念 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一…...

k8s-调度约束
目录 工作机制 调度过程 指定调度节点 亲和性 键值运算关系 Pod亲和性与反亲和性 污点(Taint) 和 容忍(Tolerations) 维护操作 故障排除步骤 Kubernetes 是通过 List-Watch 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了…...
C++设计模式_26_设计模式总结
本篇为C++设计模式的总结课,此篇再回到原帮助大家梳理一下。 文章目录 1. 一个目标2. 两种手段3. 八大原则4. 重构技法5. 从封装变化角度对模式分类6. C++对象模型7. 关注变化点和稳定点8. 什么时候不用模式9. 经验之谈10. 设计模式成长之路1. 一个目标 管理变化,提高复用!…...
解锁AI语言模型的秘密武器 - 提示工程
文章目录 一、LLM概念1.1 什么是LLMs1.2 LLMs类别1.3 如何构建LLM 二、提示工程简介2.1 基础提示2.2 使用提示词的必要性 三、 提示3.1 如何写好提示词3.1.1 使用分隔符3.1.2 结构化输出3.1.3 风格信息3.1.4 给定条件3.1.5 给出示例3.1.6 步骤分解3.1.7 不断迭代 3.2 提示工程3…...
qt手撕菜单栏
最近有个项目需要手写菜单栏。 就写了一个简单的程序,供大家参考! #include <QApplication> #include <QMainWindow> #include <QMenuBar> #include <QMenu> #include...

UE5——网络——RPC
RPC(这个是官方文档的资料) 要将一个函数声明为 RPC,您只需将 Server、Client 或 NetMulticast 关键字添加到 UFUNCTION 声明。 例如,若要将某个函数声明为一个要在服务器上调用、但需要在客户端上执行的 RPC,您可以…...

基于ASP.NET MVC + Bootstrap的仓库管理系统
基于ASP.NET MVC Bootstrap的仓库管理系统。源码亲测可用,含有简单的说明文档。 适合单仓库,基本的仓库入库管理,出库管理,盘点,报损,移库,库位等管理,有着可视化图表。 系统采用Bo…...

Jetson NX FFmpeg硬件编解码实现
最近在用Jetson Xavier NX板子做视频处理,但是CPU进行视频编解码,效率比较地下。 于是便考虑用硬解码来对视频进行处理。 通过jtop查看,发现板子是支持 NVENC硬件编解码的。 1、下载源码 因为需要对ffmpeg进行打补丁修改,因此需…...

5.2用队列实现栈(LC225-E)
算法: 其实这道题不用像上一道题一样,用两个队列实现栈。 由于队列的数据结构特性。用一个队列就可实现栈。 难点还是在出队的时候: 比如队列[1,2,3],要模拟一个栈入栈就是直接append(其实就是C中的push࿰…...

项目上线前发现严重Bug怎么办?
今天分享一个面试问题,现在有一个面试场景: 项目计划明天发布,但是在今天你作为测试人员发现了一个严重的bug,市场相关人员又在催发布的事情,这个时候你应该怎么办? 这是测试工程师不管是在面试࿰…...
【WPF系列】- Application详解
【WPF系列】- Application详解 文章目录 【WPF系列】- Application详解一、Application简介Application 类具体有以下功能: 二、初始App.xaml二、自定义Main方法启动WPF应用程序第一种:启动应用程序的代码第二种:启动应用程序的代码第三种:启…...
常见的内置方法:__call__,__getitem__,__iter__,__next__
1.__call__方法 在创建好一个实例后,直接调用一个实例会报错。但使用__call__后,可以让这个实例可以像方法一样被调用(就是一个函数后面加个括号的函数调用形式) class Person:passp1 Person() p1() # 实例这样无法直接被调…...

python用cv2画图(line, rectangle, text等)
Python做图像图形研究的时候,通常需要画很多辅助几何形状(比如bounding box等)。基于opencv的几何图形绘制具有易用性,而且天然能和numpy数组交互。 本文总结了几种常用的cv2画几何图形的方法,当一个简易的手册使用&a…...

解决方案中word中分页符的使用
在投标方案中要善于使用“分页符”,尽可能少使用分节符号,没有分页符前,你每次修改你的标书或者文件,增加或者修改内容后。你的格式字段前后都是会发生变化,如何稳定的保证结构呢,那就是分页符的使用&#…...
ubuntu20.04下apache启用php7.4-fpm
默认的apache不解析php文件: 直接安装提示依赖有问题: libapache2-mod-php7.4 : Depends: php7.4-common ( 7.4.3-4ubuntu2.19) but 1:7.4.33-8ubuntu20.04.1deb.sury.org1 is to be installed rootfv-az1492-145:/tmp# sudo apt install libapache2-…...
在 CentOS 服务器上部署 JAR 文件到 Docker 容器
标题:在 CentOS 服务器上部署 JAR 文件到 Docker 容器的详细步骤 步骤 1: 确保 Docker 已安装 在开始之前,确保在 CentOS 服务器上已经安装了 Docker。如果没有安装,可以使用以下命令进行安装: sudo yum install docker步骤 2:…...

vector类模拟实现(c++)(学习笔记)
vector 构造函数析构函数[]push_backsize()capacity()reserve()push_back() 迭代器实现非const和const版本 pop_back()resize()insert()***重点erase()***重点再谈构造函数!拷贝构造函数****(重点)运算符重载***(重点)…...

Redis Sentinel 哨兵模式
Sentinel 哨兵模式 Redis Sentinel 官网 Redis 的 Sentinel 文档 -- Redis中国用户组(CRUG) Sentinel Redis 命令参考(红色) Sentinel 通过监控的方式获取主机的工作状态是否正常,当主机发生故障时, Senti…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法
用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...