c基础学习(一)

学习网站:

C语言的过去与未来 - C语言教程 - C语言网 (dotcpp.com)icon-default.png?t=N7T8https://www.dotcpp.com/course/c-intros/

    C 语言简介 - C 语言教程 - 网道 (wangdoc.com)icon-default.png?t=N7T8https://wangdoc.com/clang/intro

变量:

#include<stdio.h>     /*引入头文件-- 标准输入输出头文件(类似于html的标准头) #include C预处理器指令,简称预处理*/
int global=2;  /* 定义全局变量,全局变量:本文件内任何方法都可以使用*/
int main(void)     /* int main---入口函数(类似于页面加载函数,只有一个) void:空的,没有传递参数*/
{int num=2; /* 定义整数类型的局部变量,并赋值  局部变量:仅在此函数内部使用*/return 0;
}int global(变量)=2(字面量);字面量后缀:添加后缀用于指定一个不同的类型f和F:float类型。
l和L:对于整数是long int类型,对于小数是long double类型。
ll和LL:Long Long 类型,比如3LL。
u和U:表示unsigned int,比如15U、0377U。u还可以与其他整数后缀结合,放在前面或后面都可以,比如10UL、10ULL和10LLU

常量: 

  整数类型的极限值的常用常量:

  • SCHAR_MINSCHAR_MAX:signed char 的最小值和最大值。
  • SHRT_MINSHRT_MAX:short 的最小值和最大值。
  • INT_MININT_MAX:int 的最小值和最大值。
  • LONG_MINLONG_MAX:long 的最小值和最大值。
  • LLONG_MINLLONG_MAX:long long 的最小值和最大值。
  • UCHAR_MAX:unsigned char 的最大值。
  • USHRT_MAX:unsigned short 的最大值。
  • UINT_MAX:unsigned int 的最大值。
  • ULONG_MAX:unsigned long 的最大值。
  • ULLONG_MAX:unsigned long long 的最大值。

SIZE_MAX :表示size_t可以表示的最大整数

运算符:

   算数运算符:

+:正值运算符(一元运算符)
-:负值运算符(一元运算符)
+:加法运算符(二元运算符)
-:减法运算符(二元运算符)
*:乘法运算符
/:除法运算符(整除,不会保留小数;如何想保留小数,除数/被除数需要其中一个是浮点数)
%:余值运算符 (只能用于整数,不能用于浮点数)

 递增递减运算符:

++:自增运算符
--:自减运算符var ++  变量原始数据返回之后再自增
++ var  变量先自增再返回数据

 关系运算符: 

> 大于运算符
< 小于运算符
>= 大于等于运算符
<= 小于等于运算符
== 相等运算符
!= 不相等运算符返回值:0  假1  真

逻辑运算符: 

!:否运算符(改变单个表达式的真伪)。
&&:与运算符(两侧的表达式都为真,则为真,否则为伪)。
||:或运算符(两侧至少有一个表达式为真,则为真,否则为伪)。

位运算符 : 

   作用:操作二进制位

~ 取反运算符(1改为0,0改为1)
&  与运算符  (比较二进制位数据,都为1返回1,反则0)
|  或运算符  (比较二进制位数据,一个为1返回1,反则0)
^  异或运算符(比较二进制位数据,仅有一个为1返回1,反则0)
<< 左移运算符(左侧运算数的每一位,向左移动指定的位数,尾部空出来的位置使用0填充)
>> 右移运算符 (左侧运算数的每一位,向右移动指定的位数,尾部无法容纳的值将丢弃,头部空出来的位置使用0填充)

逗号运算符: 

, 多个表达式写在一起,从左到右依次运行每个表达式例如:int x,y;

运算符执行顺序:

  • 圆括号(()
  • 自增运算符(++),自减运算符(--
  • 一元运算符(+-
  • 乘法(*),除法(/
  • 加法(+),减法(-
  • 关系运算符(<>等)
  • 赋值运算符(=

基础数据类型:

    数字:

           整数:

整数默认都是十进制数int num=1;     /* 不带正负号,只表示非负整数,使用4个或8个字节表示一个整数*/
printf("num==%d \n",num);signed int a;  /* 带有正负号,包含负值*/
printf("a==%d \n",a);/*unsigned 作用:同样长度的内存能够表示的最大整数值*/
unsigned int b; /*不带有正负号,只能表示零和正整数,可以省略int;*/
printf("b==%d \n",b);/* 可以省略int,也可以使用signed 和unsigned */
short int a;      /* 两个字节*/
long int b;       /* 至少四个字节*/
long long int c;  /* 至少八个字节*/进制转换:使用printf的占位符修改
%d:十进制整数。
%o:八进制整数。
%x:十六进制整数。
%#o:显示前缀0的八进制整数。
%#x:显示前缀0x的十六进制整数。
%#X:显示前缀0X的十六进制整数。int x = 100;
printf("dec = %d\n", x); // 100
printf("octal = %o\n", x); // 144
printf("hex = %x\n", x); // 64
printf("octal = %#o\n", x); // 0144
printf("hex = %#x\n", x); // 0x64
printf("hex = %#X\n", x); // 0X64

          浮点数:

浮点数:使用 m * be 的形式,存储一个数值,m是小数部分,b是基数(通常是2),e是指数部分。这种形式是精度和数值范围的一种结合,可以表示非常大或者非常小的数double c=3.5;  /*8个字节(64位),至少提供13位有效数字*/
printf("c=%f \n",c);long double d=4.59 /*通常占用16个字节*/
printf("d=%f \n",d);允许使用科学计数法表示浮点数,使用字母e来分隔小数部分和指数部分
e后面如果是加号+,加号可以省略(有点类似于拼接)。
科学计数法的小数部分如果是0.x或x.0的形式,那么0可以省略
注意,科学计数法里面e的前后,不能存在空格。double x = 123.456e+3; // 123.456 x 10^3
// 等同于
double x = 123.456e3;

      字符:

 char str='B';/* 等价于 char str = 66; 66是ASCII 字符编码*/printf("str: %c",str);signed char c; // 范围为 -128 到 127
unsigned char c; // 范围为 0 到 255字符必须使用单引号''

 布尔值:

#include <stdbool.h>  /*加载此文件,可以使用bool定义*/
bool flag = false; //假,0
bool flag = true;  //真,1

可移植类型:

含义:不同计算机上,占用的字节宽度可能是不一样的,无法提前知道它们到底占用多少个字节,为了控制准确的字节宽度,代码可以有更好的可移植性,头文件stdint.h创造了一些新的类型别名

类似于插件,配置即可使用

(1)精确宽度类型(exact-width integer type),保证某个整数类型的宽度是确定的。

  • int8_t:8位有符号整数。
  • int16_t:16位有符号整数。
  • int32_t:32位有符号整数。
  • int64_t:64位有符号整数。
  • uint8_t:8位无符号整数。
  • uint16_t:16位无符号整数。
  • uint32_t:32位无符号整数。
  • uint64_t:64位无符号整数。

(2)最小宽度类型(minimum width type),保证某个整数类型的最小长度。

  • int_least8_t
  • int_least16_t
  • int_least32_t
  • int_least64_t
  • uint_least8_t
  • uint_least16_t
  • uint_least32_t
  • uint_least64_t

(3)最快的最小宽度类型(fast minimum width type),可以使整数计算达到最快的类型。

  • int_fast8_t
  • int_fast16_t
  • int_fast32_t
  • int_fast64_t
  • uint_fast8_t
  • uint_fast16_t
  • uint_fast32_t
  • uint_fast64_t

(4)可以保存指针的整数类型。

  • intptr_t:可以存储指针(内存地址)的有符号整数类型。
  • uintptr_t:可以存储指针的无符号整数类型。

(5)最大宽度整数类型,用于存放最大的整数。

  • intmax_t:可以存储任何有效的有符号整数的类型。
  • uintmax_t:可以存放任何有效的无符号整数的类型。

数据类型转换:

      1 赋值运算:

          赋值运算符会自动将右边的值,转成左边变量的类型

/*浮点数赋值给整数变量,会舍去小数部分*/
int x = 3.14;  /* 3*//*整数赋值给浮点数变量,会自动添加小数*/
float y = 12 * 2; /*24.0*//*窄类型赋值给宽类型*/
字节长度较小的整数类型,赋值给字节长度较大的整数变量时,会发生类型提升,即窄类型自动转为宽类型。
char x = 10;
int i = x + y;/*char或short类型赋值给int类型,会自动提升为int*//*宽类型赋值给窄类型*/
字节长度较大的类型,赋值给字节长度较小的变量时,会发生类型降级,自动转为后者的类型。这时可能会发生截值(truncation),系统会自动截去多余的二进制位,数据返回会出现问题int i = 321;
char ch = i; // ch 的值是 65 (321 % 256 的余值)double pi = 3.14159;
int i = pi; // i 的值为 3

2 混合数据运算: 

 1 整数与浮点数混合运算时,整数转为浮点数类型,与另一个运算数类型相同。

 2 不同的浮点数/整数类型类型混合运算时,长度较小的类型转为长度较大的类型

3 整数运算:

     两个相同类型的整数运算时,或者单个整数的运算,宽度小于int的类型,运算结果会自动提升为int

4 函数返回值:

 函数的参数和返回值,会自动转成函数定义里指定的类型

5 手动转换类型:

   以上都是自动转换,手动转换方法:在一个值或变量的前面,使用圆括号指定类型(type)

(unsigned char) ch

sizeof 判断字节:

作用:某种数据类型或某个值占用的字节数量,别名:size_t(别名定义在stddef.h头文件(引入stdio.h时会自动引入)里面)
SIZE_MAX :表示size_t可以表示的最大整数
size_t范围:[0, SIZE_MAX]#include<stdio.h>     /*引入头文件-- 标准输入输出头文件(类似于html的标准头) #include C预处理器指令,简称预处理*/
#include<stddef.h> /*专门用于检测整型数据数据类型的表达值范围 ,不引入会报没有定义UINT_MAX*/
int main(void)     /* int main---入口函数(类似于页面加载函数,只有一个) void:空的,没有传递参数*/
{
printf()有专门的占位符%zd,%zu, 或者%u,,%lu 输出对应的字节/*参数为数据类型*/ 
int x = sizeof(int);
printf("x is %zd \n",x);/*参数为变量*/ 
int i=5;
sizeof(i);
printf("x is %zu \n",sizeof(i));/*参数为数值*/ 
sizeof(3.14);
printf("x is %zu \n",sizeof(3.14));}

  

数据溢出:

含义:每一种数据类型都有数值范围,如果存放的数值超出了这个范围(小于最小值或大于最大值),需要更多的二进制位存储,就会发生溢出。大于最大值,叫做向上溢出(overflow);小于最小值,叫做向下溢出(underflow)

注意:数据溢出时编译不会报错,会引发其他的问题,需要注意!!!!!

解决方案:将运算结果与类型的极限值进行比较

#include<stdio.h>     /*引入头文件-- 标准输入输出头文件(类似于html的标准头) #include C预处理器指令,简称预处理*/
#include <limits.h>  /*专门用于检测整型数据数据类型的表达值范围 ,不引入会报没有定义UINT_MAX*/
int main(void)     /* int main---入口函数(类似于页面加载函数,只有一个) void:空的,没有传递参数*/
{unsigned int ui;unsigned int sum;if (ui > UINT_MAX - sum){printf("UINT_MAX=%d,ui=%d,sum=%d",UINT_MAX,ui,sum);
}else{sum = sum + ui;printf("888---UINT_MAX=%d,ui=%d,sum=%d",UINT_MAX,ui,sum);
}
}

转义符:

  • \a:警报,这会使得终端发出警报声或出现闪烁,或者两者同时发生。
  • \b:退格键,光标回退一个字符,但不删除字符。
  • \f:换页符,光标移到下一页。在现代系统上,这已经反映不出来了,行为改成类似于\v
  • \n:换行符。
  • \r:回车符,光标移到同一行的开头。
  • \t:制表符,光标移到下一个水平制表位,通常是下一个8的倍数。
  • \v:垂直分隔符,光标移到下一个垂直制表位,通常是下一行的同一列。
  • \0:null 字符,代表没有内容。注意,这个值不等于数字0。
  • \nn:字符的八进制写法,nn为八进制值。
  • \xnn:字符的十六进制写法,nn为十六进制值

占位符:

  • %a:十六进制浮点数,字母输出为小写。
  • %A:十六进制浮点数,字母输出为大写。
  • %c:字符。
  • %d:十进制整数。
  • %e:使用科学计数法的浮点数,指数部分的e为小写。
  • %E:使用科学计数法的浮点数,指数部分的E为大写。
  • %i:整数,基本等同于%d。
  • %f:小数(包含float类型和double类型)。
  • %g:6个有效数字的浮点数。整数部分一旦超过6位,就会自动转为科学计数法,指数部分的e为小写。
  • %G:等同于%g,唯一的区别是指数部分的E为大写。
  • %hd:十进制 short int 类型。
  • %ho:八进制 short int 类型。
  • %hx:十六进制 short int 类型。
  • %hu:unsigned short int 类型。
  • %ld:十进制 long int 类型。
  • %lo:八进制 long int 类型。
  • %lx:十六进制 long int 类型。
  • %lu:unsigned long int 类型。
  • %lld:十进制 long long int 类型。
  • %llo:八进制 long long int 类型。
  • %llx:十六进制 long long int 类型。
  • %llu:unsigned long long int 类型。
  • %Le:科学计数法表示的 long double 类型浮点数。
  • %Lf:long double 类型浮点数。
  • %n:已输出的字符串数量。该占位符本身不输出,只将值存储在指定变量之中。
  • %o:八进制整数。
  • %p:指针。
  • %s:字符串。
  • %u:无符号整数(unsigned int)。
  • %x:十六进制整数。
  • %zd:size_t类型。
  • %%:输出一个百分号。

printf输出格式:

   1  规定输出长度

#include<stdio.h>     /*引入头文件-- 标准输入输出头文件(类似于html的标准头) #include C预处理器指令,简称预处理*/
int main(void)     /* int main---入口函数(类似于页面加载函数,只有一个) void:空的,没有传递参数*/
{printf("%5d\n", 123);  /* 输出为五位的数据,不足五位使用空格补充空位,默认右对齐,从左开始补充空格*/printf("%-5d\n", 123); /* 输出为五位的数据,修改成左对齐,从右开始不从空格*/printf("%12f\n", 123.45);/*输出为十二位的数据,小数的默认显示精度是小数点后6位,小数点后不足六位的使用0补充,多余六位的从左补充空格 */printf("Number is %.2f\n", 0.5); /*输出为两位小数*/printf("%6.2f\n", 0.5);   /* 输出长度为六,小数为两位的数据*/printf("%*.*f\n", 6, 2, 0.5);  /*输出长度为六,小数为两位的数据 ---*号代替数值,可以自行配置修改输出长度和小数位数*/return 0;
}

 2 输出数据携带正负号

#include<stdio.h>     /*引入头文件-- 标准输入输出头文件(类似于html的标准头) #include C预处理器指令,简称预处理*/
int main(void)     /* int main---入口函数(类似于页面加载函数,只有一个) void:空的,没有传递参数*/
{printf("%+d\n", 12); // 输出 +12printf("%+d\n", -12); // 输出 -12return 0;
}

3 是否输出全部字符串

#include<stdio.h>     /*引入头文件-- 标准输入输出头文件(类似于html的标准头) #include C预处理器指令,简称预处理*/
int main(void)     /* int main---入口函数(类似于页面加载函数,只有一个) void:空的,没有传递参数*/
{printf("%s\n", "hello world");  //输出全部字符printf("%.5s\n", "hello world");  //输出五位字符return 0;
}

流程控制:

   if条件语句

#include<stdio.h>     /*引入头文件-- 标准输入输出头文件(类似于html的标准头) #include C预处理器指令,简称预处理*/
int x=10;  /* 定义全局变量*/
int y=5;
int main(void)     /* int main---入口函数(类似于页面加载函数,只有一个) void:空的,没有传递参数*/
{// 只有一个判断条件而且仅有一个执行语句时,可以不带{}if (x == 10)printf("x is 10\n");// 只有一个判断条件,有多个执行语句时if (x == 10){x++;printf("x is 10\n");}//多个判断条件时if (x == 10){x++;printf("x is 10\n");}else if(x == 10&&y==5){y++printf("y is 5\n");}else{printf("x y is 10\n");}return 0;
}

  三元运算符:

#include<stdio.h>     /*引入头文件-- 标准输入输出头文件(类似于html的标准头) #include C预处理器指令,简称预处理*/
int num=10;
int newNum;
int main(void)     /* int main---入口函数(类似于页面加载函数,只有一个) void:空的,没有传递参数*/
{( num >= 10 )?  newNum=5 : 6;  /*()括号内表达式成立时,执行问号后面的语句,不成立时,执行冒号后面的语句*/printf("newNum is %d" , newNum);return 0;
}

switch 条件语句 :

#include<stdio.h>     /*引入头文件-- 标准输入输出头文件(类似于html的标准头) #include C预处理器指令,简称预处理*/
int num=10;
int main(void)     /* int main---入口函数(类似于页面加载函数,只有一个) void:空的,没有传递参数*/
{switch (num) {case 0:printf("num=0");break;case 5:printf("num=5");break;default:printf("num=10");
}return 0;
}

while 循环语句

#include<stdio.h>     /*引入头文件-- 标准输入输出头文件(类似于html的标准头) #include C预处理器指令,简称预处理*/
int num=0;
int main(void)     /* int main---入口函数(类似于页面加载函数,只有一个) void:空的,没有传递参数*/
{while (num >= 10) {printf("num is now %d!\n", num);num++;
}return 0;
}

do...while 循环语句

#include<stdio.h>     /*引入头文件-- 标准输入输出头文件(类似于html的标准头) #include C预处理器指令,简称预处理*/
int num=0;
int main(void)     /* int main---入口函数(类似于页面加载函数,只有一个) void:空的,没有传递参数*/
{
do {printf("num is %d\n",num);num++;
} while (num < 10);return 0;
}

for 循环语句

#include<stdio.h>     /*引入头文件-- 标准输入输出头文件(类似于html的标准头) #include C预处理器指令,简称预处理*/
int main(void)     /* int main---入口函数(类似于页面加载函数,只有一个) void:空的,没有传递参数*/
{
for (int i = 0; i < 10; i++){printf("num=====%d \n",i);
}
}

break 语句

1 switch语句配套使用,用来中断某个分支的执行
2 循环语句体内部跳出循环,不再进行后面的循环

continue 语句

循环语句体内部终止本轮循环,进入下一轮循环

goto 语句

1 跳到指定的标签名
2 提早结束多重判断
3 跳出多层循环

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/584628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git 常用命令总结

git 工作原理图&#xff1a; git 常用命令及解释: 命令解释例子git init在当前目录初始化一个新的 Git 仓库。git initgit clone <repository>克隆一个远程仓库到本地。git clone https://github.com/example/repository.gitgit add <file>将文件的变化添加到暂存…

Gaussian-Splatting 训练并导入Unity中

这个周末玩点啥~&#x1f41e; &#x1f365;环境安装&#x1f4a1;安装C编译工具&#x1f4a1;安装Python&#x1f4a1;安装CUDA&#x1f4a1;添加ffmpeg到环境变量Path添加COLMAP-3.8-windows-cuda文件路径到环境变量Path&#x1f4a1;pytorch安装&#x1f4a1;tqdm 安装&…

『JavaScript』全面解析JavaScript中的防抖与节流技术及其应用场景

&#x1f4e3;读完这篇文章里你能收获到 理解防抖&#xff08;Debouncing&#xff09;和节流&#xff08;Throttling&#xff09;的概念&#xff1a;了解这两种性能优化技术如何帮助我们更有效地处理频繁触发的事件掌握防抖与节流的实现方法&#xff1a;学习如何在JavaScript中…

WPF+Halcon 培训项目实战(8):WPF+Halcon初次开发

前言 为了更好地去学习WPFHalcon&#xff0c;我决定去报个班学一下。原因无非是想换个工作。相关的教学视频来源于下方的Up主的提供的教程。这里只做笔记分享&#xff0c;想要源码或者教学视频可以和他联系一下。 相关链接 微软系列技术教程 WPF 年度公益课程 Halcon开发 CSD…

本地搭建微信小程序或者公众号开发服务器的简单方法

现在小程序开发需要购买服务器&#xff0c;价格还是有点贵的&#xff0c;这里好代码网分享一个可以花费小代价就可以搭建一个本地服务器&#xff0c;可以用来开发小程序和微信公众号等。 1.域名&#xff08;备案过的&#xff09; 2.阿里云注册免费的https证书 3.配置本地的ngi…

[足式机器人]Part4 南科大高等机器人控制课 CH12 Robotic Motion Control

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;CLEAR_LAB 笔者带更新-运动学 课程主讲教师&#xff1a; Prof. Wei Zhang 课程链接 &#xff1a; https://www.wzhanglab.site/teaching/mee-5114-advanced-control-for-robotics/ 南科大高等机器人控制课 Ch12 Robotic …

大数据技术发展史

今天我们常说的大数据技术&#xff0c;其实起源于Google在2004年前后发表的三篇论文&#xff0c;也就是我们经常听到的“三驾马车”&#xff0c;分别是分布式文件系统GFS、大数据分布式计算框架MapReduce和NoSQL数据库系统BigTable。 你知道&#xff0c;搜索引擎主要就做两件事…

C语言 volatile关键字

volatile关键字介绍 volatile 是一个关键字&#xff0c;用于修饰变量&#xff0c;表示该变量是易变的&#xff0c;即可能在任何时候被意外地改变。在多线程编程中&#xff0c;当多个线程同时访问同一个变量时&#xff0c;由于线程之间的交互和优化&#xff0c;可能会导致变量的…

Python 实现 PDF 到 Word 文档的高效转换(DOC、DOCX)

PDF&#xff08;Portable Document Format&#xff09;已成为一种广泛使用的电子文档格式。PDF的主要优势是跨平台&#xff0c;可以在不同设备上呈现一致的外观。然而&#xff0c;当我们需要对文件内容进行编辑或修改&#xff0c;直接编辑PDF文件会非常困难&#xff0c;而且效果…

SimpleCG小游戏开发系列(2)--贪吃蛇

一、前言 在之前的C语言小游戏开发系列我们已经介绍了扫雷游戏的开发&#xff0c;本篇我们继续此系列第二篇&#xff0c;同样是比较简单但好玩的一个游戏--贪吃蛇。因为有了之前的游戏框架&#xff0c;我们只需要直接搬来原来的框架即可&#xff0c;可以省去不少活。 先看看游…

java数据结构与算法刷题-----LeetCode 680. 验证回文串 II

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 思路&#xff1a;双指针 详情见代码注释 class Solution {//贪心双指针&a…

什么是工厂方法模式,工厂方法模式解决了什么问题?

工厂方法模式是一种创建型设计模式&#xff0c;它定义了一个用于创建对象的接口&#xff0c;但将实际的实例化过程延迟到子类中。这样&#xff0c;客户端代码在不同的子类中实例化具体对象&#xff0c;而不是直接实例化具体类。工厂方法模式允许一个类的实例化延迟到其子类&…

Springboot实现登录注册

功能&#xff1a;1、实现用户的登录 2、实现用户的注册以及重名的判断 LoginControl&#xff1a; package com.example.demo.controls;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; imp…

CEC2017(Python):五种算法(HHO、RFO、OOA、PSO、GWO)求解CEC2017

一、5种算法简介 1、哈里斯鹰优化算法HHO 2、红狐优化算法RFO 3、鱼鹰优化算法OOA 4、粒子群优化算法PSO 5、灰狼优化算法GWO 二、CEC2017简介 参考文献&#xff1a; [1]Awad, N. H., Ali, M. Z., Liang, J. J., Qu, B. Y., & Suganthan, P. N. (2016). “Problem d…

resnet18

ResNet18的基本含义是&#xff0c;网络的基本架构是ResNet&#xff0c;网络的深度是18层。但是这里的网络深度指的是网络的权重层&#xff0c;也就是包括池化&#xff0c;激活&#xff0c;线性层。而不包括批量化归一层&#xff0c;池化层。 transforms.RandomCrop(32, pa…

RabbitMQ 核心概念(交换机、队列、路由键),队列类型等介绍

RabbitMQ 核心概念(交换机、队列、路由键)&#xff0c;队列类型等介绍 RabbitMQ 是一个消息队列系统&#xff0c;它的核心概念包括交换机&#xff08;Exchange&#xff09;、队列&#xff08;Queue&#xff09;和路由键&#xff08;Routing Key&#xff09;&#xff0c;它们一起…

Apache Flink连载(二十):Flink On Yarn运行 - Yarn Per-Job模式(弃用)

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录 1. 任务提交命令 2. 任务…

OCP NVME SSD规范解读-4.NVMe IO命令-2

NVMe-IO-3&#xff1a; 由于设备具有掉电保护功能&#xff08;如Power Loss Protection&#xff0c;PLP&#xff09;&#xff0c;因此在以下情况下&#xff0c;性能不应降低&#xff1a; FUA&#xff08;Force Unit Access&#xff09;&#xff1a;是计算机存储设备中的一种命…

Grafana告警发送至飞书配置指定at某人或所有人

1.问题描述 通过webhook向飞书机器人发送消息&#xff0c;根据飞书机器人官方文档&#xff0c;始终无法指定某个人或者所有人通知&#xff0c;后来发现是文档参数有问题。 文档地址&#xff1a;https://open.feishu.cn/document/client-docs/bot-v3/add-custom-bot 官方文档给…

谷达冠楠:抖店怎么运营提升销量

随着电商行业的快速发展&#xff0c;抖店作为抖音平台上的一种新型电商模式&#xff0c;越来越受到商家和消费者的青睐。然而&#xff0c;如何在众多的抖店中脱颖而出&#xff0c;提升销量呢?本文将从以下几个方面为大家分享一些运营技巧。 选品策略&#xff1a;选对产品是提升…