译 通过自动反编译和外部源提升调试

32.C和C++的类型安全

**什么是类型安全?** 类型安全很大程度上可以等价于内存安全,类型安全的代码不会试图访问自己没被授权的内存区域。“类型安全”常被用来形容编程语言,其根据在于该门编程语言是否提供保障类型安全的机制;有的时候也用“类型安全”形容某个程序,判别的标准在于该程序是否隐含类型错误。 类型安全的编程语言与类型 ......
类型 32

28.拷贝初始化和直接初始化

●当用于类类型对象时,初始化的拷贝形式和直接形式有所不同:直接初始化直接调用与实参匹配的构造函数,拷贝初始化总是调用拷贝构造函数。拷贝初始化首先使用指定构造函数创建一个临时对象,然后用拷贝构造函数将那个临时对象拷贝到正在创建的对象。举例如下 ```C++ string str1("I am a st ......
拷贝 28

24.C++中const和static的作用

**static** ●不考虑类的情况 ○隐藏。所有不加static的全局变量和函数具有全局可见性,可以在其他文件中使用,加了之后只能在该文件所在的编译模块中使用 ○默认初始化为0,包括未初始化的全局静态变量与局部静态变量,都存在全局未初始化区 ○静态变量在函数内定义,始终存在,且只进行一次初始化, ......
作用 static const 24

25.C++的顶层const和底层const

任意常量对象为**顶层const**,包括常量指针;指向常量的指针和声明const的引用都为**底层const** 顶层const(top-level const)表示指针本身是个常量int* const ptr=&m; 此时指针不可以发生改变,但是指针所指向的对象值是可以改变的 底层const(l ......
const 顶层 底层 25

33.C++中的重载、重写(覆盖)和隐藏的区别

(1)重载(overload) 重载是指在同一范围定义中的同名成员函数才存在重载关系。主要特点是函数名相同,参数类型和数目有所不同,不能出现参数个数和类型均相同,仅仅依靠返回值不同来区分的函数。重载和函数成员是否是虚函数无关。举个例子: ```C++ class A { ... virtual in ......
33

26.数组名和指针(这里为指向数组首元素的指针)区别?

- 二者均可通过增减偏移量来访问数组中的元素。 - 数组名不是真正意义上的指针,可以理解为常指针,所以数组名没有自增、自减等操作。 - **当数组名当做形参传递给调用函数后,就失去了原有特性,退化成一般指针,多了自增、自减操作,但sizeof运算符不能再得到原数组的大小了。** ......
数组 指针 指向 元素 26

flex 和 bison 概述

# overview of flex & bison [flex manual](https://westes.github.io/flex/manual/) [bison manual](https://www.gnu.org/software/bison/manual/bison.html) # ......
bison flex

16.strlen和sizeof区别?

- sizeof是运算符,并不是函数,结果在编译时得到而非运行中获得;strlen是字符处理的库函数。 - sizeof参数可以是任何数据的类型或者数据(sizeof参数不退化);strlen的参数只能是字符指针且结尾是'\0'的字符串。 - 因为sizeof值在编译时确定,所以不能用来得到动态分配 ......
strlen sizeof 16

17.常量指针和指针常量区别?

## 1)常量指针(指向常量的指针) 语法:const 数据类型 *变量名; 不能通过解引用的方法修改内存地址中的值(用原始的变量名是可以修改的)。 注意: ●指向的变量(对象)可以改变(之前是指向变量a的,后来可以改为指向变量b)。 ●一般用于修饰函数的形参,表示不希望在函数里修改内存地址中的值。 ......
常量 指针 17

19.C++和Python的区别

包括但不限于: - Python是一种脚本语言,是解释执行的,而C++是编译语言,是需要编译后在特定平台运行的。python可以很方便的跨平台,但是效率没有C++高。 - Python使用缩进来区分不同的代码块,C++使用花括号来区分 - C++中需要事先定义变量的类型,而Python不需要,Pyt ......
Python 19

20.C++和C语言的区别

- C++中new和delete是对内存分配的运算符,取代了C中的malloc和free。 - 标准C++中的字符串类取代了标准C函数库头文件中的字符数组处理函数(C中没有字符串类型)。 - C++中用来做控制态输入输出的iostream类库替代了标准C中的stdio函数库。 - C++中的try/ ......
语言 20

23.define宏定义和const的区别

**编译阶段** - define是在编译的**预处理**阶段起作用,而const是在编译、运行的时候起作用 **安全性** - define只做替换,不做类型检查和计算,也不求解,容易产生错误,一般最好加上一个大括号包含住全部的内容,要不然很容易出错 - const常量有数据类型,编译器可以对其进 ......
define const 23

18.a和&a有什么区别?

假设数组int a[10]; int (*p)[10] = &a;其中: - a是数组名,是数组首元素地址,+1表示地址值加上一个int类型的大小,如果a的值是0x00000001,加1操作后变为0x00000005。*(a + 1) = a[1]。 - &a是数组的指针,其类型为int (*)[1 ......
amp 18

22.C++中struct和class的区别

**相同点** - 两者都拥有成员函数、公有和私有部分 - 任何可以使用class完成的工作,同样可以使用struct完成 **不同点** - C中struct是没有权限的设置的,struct成员权限默认是公有的,且struct中只能是一些变量的集合体,可以封装数据却不可以隐藏数据,而且成员**不可 ......
struct class 22

3.指针和引用的区别

- 指针是一个变量,存储的是一个地址,需要占用存储空间;引用本质上是一个常量指针,引用跟原来的变量实质上是同一个东西,是原变量的别名 - 指针可以有多级,引用只有一级 - 指针可以为空,引用不能为NULL(必须有具体实体) - 指针声明和定义可以分开,可以先只声明指针变量而不初始化,等用到时再指向具 ......
指针

14.宏定义和typedef区别?

- 宏主要用于定义常量及书写复杂的内容;typedef主要用于定义类型别名。 - 宏替换发生在编译阶段之前,属于文本插入替换;typedef是编译的一部分。 - 宏不检查类型;typedef会检查数据类型。 - 宏不是语句,不在在最后加分号;typedef是语句,要加分号标识结束。 - 注意对指针的 ......
typedef 14

10.malloc和new的区别?

- malloc和free是标准库函数,支持覆盖;new和delete是运算符,支持重载。 - malloc仅仅分配内存空间,free仅仅回收空间,不具备调用构造函数和析构函数功能,用malloc分配空间存储类的对象存在风险;new和delete除了分配回收功能外,还会调用构造函数和析构函数。 - ......
malloc new 10

13.宏定义和函数有何区别?

- 宏在预处理阶段完成替换,之后被替换的文本参与编译,相当于直接插入了代码,运行时不存在函数调用,执行起来更快;函数调用在运行时需要跳转到具体调用函数。 - 宏定义属于在结构中插入代码,没有返回值;函数调用具有返回值。 - 宏定义参数没有类型,不进行类型检查;函数参数具有类型,需要检查类型。 - 宏 ......
函数 13

9.new和delete是如何实现的?

- new的实现过程是:首先调用名为**operator new**的标准库函数,分配足够大的原始为类型化的内存,以保存指定类型的一个对象;接下来运行该类型的一个构造函数,用指定初始化构造对象;最后返回指向新分配并构造后的的对象的指针 - delete的实现过程:对指针指向的对象运行适当的析构函数; ......
delete new

1.在main执行之前和之后的代码可能是什么?

**main函数执⾏之前,主要就是初始化系统相关资源:** ■设置栈指针:所谓设置栈,就是将栈指针指向某块内存 ■初始化静态`static`变量和`global`全局变量,即`.data`段的内容 ■将未初始化部分的全局变量赋初值:数值型`short`,`int`,`long`等为`0`,`bool ......
代码 main

Vue-指令-v-if和v-show

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <div v-if="count == 3">div1</div> <d ......
指令 v-show v-if show Vue

Vue-指令-v-bind和v-model

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <a v-bind:href="url">点击一下</a> <a :hr ......
指令 v-model v-bind model bind

redis集群故障无法自动提升slave

## 问题描述 生产redis集群(3master/3slave)部署在3台虚机上,每个虚机部署2个redis节点,挂了一台虚机导致redis集群异常,分析发现是挂了机器上是2master redis redis日志 ``` * MASTER REPLICA sync started # Error ......
集群 故障 redis slave

K8S | 容器和Pod组件

不论是软件环境还是虚拟机系统的搭建,基本都是通过下载软件安装包,然后在本地部署和定期更新以及运行,基于这个场景再去理解容器和Pod组件,会轻松许多; ......
容器 组件 K8S Pod K8

华为物联网(IoT)云端和华为云服务器

华为物联网(IoT)云端和华为云服务器是华为云平台上的两个不同的服务。 1. 华为物联网云端(IoT Cloud):华为物联网云端是专门为物联网设备提供的云服务平台。它提供了设备接入、数据存储、数据处理、消息通信等功能,用于管理和连接物联网设备,并实现数据的采集、存储和分析等操作。通过华为物联网云端 ......
云端 服务器 IoT

前缀和学习笔记与总结

前缀和学习笔记与总结 [toc] # 前缀和 ## 一维前缀和 ### What 现有 **原数组**: $$ a_1,a_2,a_3,\ldots,a_n $$ 对应的 **前缀和数组** 应满足: $$ S_i = a_1+a_2+a_3+\cdots+a_n $$ 前缀和 $S_i$ 即为 * ......
前缀 笔记

使用Nginx Ingress实现灰度发布和蓝绿发布

应用场景 使用Nginx Ingress实现灰度发布适用场景主要取决于业务流量切分的策略,目前Nginx Ingress支持基于Header、Cookie和服务权重三种流量切分的策略,基于这三种策略可实现以下两种发布场景: 场景一:切分部分用户流量到新版本 假设线上已运行了一套对外提供七层服务的Se ......
蓝绿 灰度 Ingress Nginx

C语言编译之分部编译

一、概述 在C语言中,将源代码转换为可执行文件的过程通常涉及以下几个步骤: 编写源代码:使用文本编辑器创建C语言源代码文件,通常以.c为扩展名。 预处理:使用预处理器对源代码进行处理。预处理器指令以#开头,用于包含头文件、宏定义等。预处理器会根据指令进行文本替换和宏展开等操作,生成经过预处理的代码。 ......
分部 语言

chatgpt账号和使用记录

https://openai.com/pricing ......
账号 chatgpt

flask run 和python xxx 两种方式的区别

在 Flask 项目中,flask run 和 python xxx(其中 xxx 是 Python 文件名)是两种不同的方式来运行 Flask 应用程序。 flask run:这是 Flask 提供的命令行工具,用于在开发环境中运行 Flask 应用程序。当你在项目目录下运行 flask run ......
方式 python flask run xxx