c基础学习(一)
学习网站:
C语言的过去与未来 - C语言教程 - C语言网 (dotcpp.com)
https://www.dotcpp.com/course/c-intros/
C 语言简介 - C 语言教程 - 网道 (wangdoc.com)
https://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_MIN,SCHAR_MAX:signed char 的最小值和最大值。SHRT_MIN,SHRT_MAX:short 的最小值和最大值。INT_MIN,INT_MAX:int 的最小值和最大值。LONG_MIN,LONG_MAX:long 的最小值和最大值。LLONG_MIN,LLONG_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 跳出多层循环
相关文章:
c基础学习(一)
学习网站: C语言的过去与未来 - C语言教程 - C语言网 (dotcpp.com)https://www.dotcpp.com/course/c-intros/ C 语言简介 - C 语言教程 - 网道 (wangdoc.com)https://wangdoc.com/clang/intro 变量: #include<stdio.h> /*引入头文件-- 标准…...
c语言的文件操作
当涉及到C语言中的文件操作时,我们需要了解一些基本的概念和函数。首先,让我们来看看如何打开和关闭文件,以及如何读取和写入文件。 要打开文件,我们使用fopen函数。这个函数接受两个参数:文件名和打开模式。打开模式…...
C语言 volatile关键字
volatile关键字介绍 volatile 是一个关键字,用于修饰变量,表示该变量是易变的,即可能在任何时候被意外地改变。在多线程编程中,当多个线程同时访问同一个变量时,由于线程之间的交互和优化,可能会导致变量的…...
IDEA快捷使用-快捷键模板
常用快捷模板 .方法的使用,例如输入 arr.null 回车 其他常规方法直接输入回车,不需要对象通过.来调用。 创建变量 psfi 创建公开int类型常量 public static final int prsf 创建 私有静态变量 private static final psf 创建公开静态变量 public static final创…...
在VMware安装CentOS 7:详细教程
安装准备工作 本地虚拟机:我这里使用的是VMware Workstation 17 Pro centos7系统ISO镜像:我这里使用的是CentOS-7-x86_64-DVD-2009.iso,具体的下载地址是在阿里云官方镜像站:centos-7.9.2009-isos-x86_64安装包下载_开源镜像站-阿…...
[Angular] 笔记 10:服务与依赖注入
什么是 Services & Dependency Injection? chatgpt 回答: 在 Angular 中,Services 是用来提供特定功能或执行特定任务的可重用代码块。它们可以用于处理数据、执行 HTTP 请求、管理应用程序状态等。Dependency Injection(依赖注入&#…...
【产品经理】axure中继器的使用——表格增删改查分页实现
笔记为个人总结笔记,若有错误欢迎指出哟~ axure中继器的使用——表格增删改查分页实现 中继器介绍总体视图视频预览功能1.表头设计2.中继器3.添加功能实现4.删除功能实现5.修改功能实现6.查询功能实现7.批量删除 中继器介绍 在 Axure RP9 中,中继器&…...
面向对象进阶-继承
继承中:成员变量的访问特点 就近原则:谁离我近我就访问谁,先在局部位置找,找不到然后在到本类成员位置到,如果本类成员位置找不到就到父类成员位置找,逐级往上找。 package oop.Extends.a03oopextendsdemo03; public…...
[NOIP2012 普及组] 摆花
[NOIP2012 普及组] 摆花 题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m m m 盆。通过调查顾客的喜好,小明列出了顾客最喜欢的 n n n 种花,从 1 1 1 到 n n n 标号。为了在门口展出更…...
系统学习Python——装饰器:函数装饰器-[装饰器状态保持方案:外层作用域和全局变量]
分类目录:《系统学习Python》总目录 闭包函数(带有外围def作用域引用和嵌套的def)常常可以实现相同的效果,特别是用于像被装饰的最初咱数这样的静态数据时。然而在下面这个例子中,我们也需要外层作用域中的一个计数器&…...
Tekton
一. 概念 Tekton 官网 Github Tekton 是一种用于构建 CI/CD 管道的云原生解决方案,它由提供构建块的 Tekton Pipelines,Tekton 作为 Kubernetes 集群上的扩展安装和运行,包含一组 Kubernetes 自定义资源,这些资源定义了您可以为…...
2023,TEVC,A Competitive and Cooperative Swarm Optimizer for Constrained MOP
Abstract 通过元启发式方法求解多目标优化问题( MOPs )得到了广泛的关注。在经典变异算子的基础上,发展了几种改进的变异算子,以及多目标优化进化算法。在这些算子中,竞争群优化算法(CSO)表现出良好的性能。然而,在处理目标空间较…...
java设计模式学习之【中介者模式】
文章目录 引言中介者模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用聊天室示例代码地址 引言 想象一下一座忙碌的机场,各种飞机需要起飞、降落,而不同的飞行活动之间必须互不干扰。如果没有一个统一的控制系统,这将是一…...
C++三剑客之std::variant(一)
1简介 C17的三剑客分别是std::optional, std::any, std::vairant。今天主要讲std::variant。std::variant的定义如下: template< class... Types > class variant; 类模板 std::variant 表示一个类型安全的联合体(以下称“变化体”)…...
新火种AI|AI正在让汽车成为“消费电子产品”
作者:一号 编辑:小迪 AI正在让汽车产品消费电子化 12月28日,铺垫许久的小米汽车首款产品——小米SU7正式在北京亮相。命里注定要造“电车”的雷军,在台上重磅发布了小米的五大自研核心技术。在车型设计、新能源技术以及智能科技…...
Docker六 | Docker Compose容器编排
目录 Docker Compose 基本概念 使用步骤 常用命令 Docker Compose Docker-Compose是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Compose可以管理多个Docker容器组成一个应用。 需要定义一个YAML格式的配置文件docker-compose.yml,…...
Oraclelinux部署Oracle服务
采用图形化界面 user用户 oracle用户 #清屏 clear #设置主机名 hostnamectl set-hostname ceshidb sed -i 1,2 s/^/#/ /etc/hosts echo "127.0.0.1 ceshidb" >> /etc/hosts echo "::1 ceshidb" >> /etc/hosts ping -c 5…...
Ubuntu安装K8S(1.28版本,基于containrd)
原文网址:Ubuntu安装K8S(1.28版本,基于containrd)-CSDN博客 简介 本文介绍Ubuntu安装K8S的方法。 官网文档:这里 1.安装K8S 1.让apt支持SSL传输 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certi…...
Linux 线程安全 (2)
文章目录 线程同步概念条件变量使用生产消费模型信号量的使用读写锁的使用 Linux 线程安全 (1) 线程同步概念 竞态条件:因为时序问题,而导致程序异常. 饥饿问题:只使用互相锁保证线程安全时,锁资源总被某…...
异或运算^简述
异或运算:^ 两个变量之间异或运算时,其二进制位相同取0,不同取1. 示例:a10 (0b 0000 1010) b3 (0b 0000 0011) a^b9(0b 0000 1001) 据此可以推算异或运算"^"有以下特性: a^a0 (0b 0000 0000)…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
【JVM面试篇】高频八股汇总——类加载和类加载器
目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...
MySQL的pymysql操作
本章是MySQL的最后一章,MySQL到此完结,下一站Hadoop!!! 这章很简单,完整代码在最后,详细讲解之前python课程里面也有,感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...
