04控制流
一、二路分支
- 逻辑:程序中某段代码需要在满足某个条件时才能运行
- 形式:
- if 语句:表达一种 如果-则 的条件执行关系
- if-else 语句:表达一种 如果-否则 的互斥分支关系
- 流程图:

- 注意:
- if 语句可以单独使用,else 语句不可以,else 语句必须跟if语句配套使用
- 不管是 if 语句还是 else 语句,代码块都必须使用大括号{}括起来,否则只有首句有效
- 注意if语句后面是否有;号,如果其加了;号,不论语句判断是否正确,都将会执行{}里的内容
- 示例代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{// (1)、if 语句:表达一种 如果-则 的条件执行关系// 1、输入整型数据int n = 0;int num = 0;// printf("请输入一个整型数据!\n");// while ( n!= 1)// {// n = scanf("%d", &num);// if ( n!= 1)// {// printf("格式错误:请重新输入(整型数据)!!!:\n");// }// while( getchar() != '\n');// }// printf("num == %d\n", num);// 2、判断整型数据if ( (num % 2) == 0) // 判断num是否为偶数{printf("num是偶数(语句1)\n"); }// (2)、if-else 语句:表达一种 如果-否则 的互斥分支关系if ( (num % 3) == 0) {printf("num是3的倍数(语句2)\n"); }else{printf("num不是3的倍数(语句3)\n"); }// (3)、if 语句可以单独使用,else 语句不可以,else 语句必须跟if语句配套使用if ( num == 100) // 可以单独使用{}// printf("hello world!\n"); // if...else中间不能写其它语句,否则会报错else // 不可以单独使用{}// (4)、不管是 if 语句还是 else 语句,代码块都必须使用大括号{}括起来,否则只有首句有效int flag = 0;int n1 = 0;int n2 = 0;int n3 = 0;// 建议的写法:if (flag == 0) // 有花括号,if语句的作用范围为{}括起来的所有语句{n1 = 100;n2 = 200;n3 = 300;}else // 有花括号,else语句的作用范围为{}括起来的所有语句{n1 = 111;n2 = 222;n3 = 333; }printf("n1 == %d, n2 == %d, n3 == %d\n", n1, n2, n3);// 不太建议的写法1:if (flag == 1) // 没有{}括号,if语句的作用范围仅限于一行n1 = 11;n2 = 22; // 影响不了下面的语句n3 = 33;printf("n1 == %d, n2 == %d, n3 == %d\n", n1, n2, n3);// 不太建议的写法2:if (flag == 0) n1 = 11111;elsen2 = 22222; // 没有{}括号,else语句的作用范围仅限于一行n3 = 33333; // 影响不了下面的语句printf("n1 == %d, n2 == %d, n3 == %d\n", n1, n2, n3);// (5)、注意if语句后面是否有;号,如果其加了;号,不论语句判断是否正确,都将会执行{}里的内容int ts_x = 0;int ts_y = 0;printf("请输入触摸屏的x和y轴的坐标(整型,整型)!\n");while (1){// 1、输入触摸屏数据while ( n!= 2){n = scanf("(%d,%d)", &ts_x, &ts_y);if ( n!= 2){printf("格式错误:请重新输入触摸屏的x和y轴的坐标(整型,整型)!!!:\n");}while( getchar() != '\n');}n = 0; // 2、判断触摸屏数据if ( (ts_x >100 && ts_x < 200) && (ts_y>100 && ts_y < 200)); // 这个if后面加了;号,意味着其作用范围到此行为止,所以影响不了下面的{}语句{ // 此处已经变为了单独的语句了,不管if语句是否为真或假printf("手指点击了这个地方\n");}}return 0;
}
二、多路分支
- 逻辑:根据不同的条件执行不同的代码片段
- 语法:
- 流程图:

- 要点解析:
- switch(n) 语句中的 n 必须是一个整型表达式,即 switch 判断的数据必须是整型(字符(本质上就是单字节整型)、整型数据(变量(num1、num2...)、常量(1,2,3...)、整型表达式)
- case 语句只能带整型常量,包括普通整型或字符,不包括 const 型数据。
- break 语句的作用是跳出整个 swtich 结构,没有 break 程序会略过case往下执行
- default 语句不是必须的,一般放在最后面(因此不需要 break)
#include <stdio.h>
int main(int argc, char const *argv[])
{// (1)、if...else if ... else if ...elseint flag = 2;if (flag == 1){printf("执行语句1\n");}// printf("hello wordl!\n"); // 会报错,if...else中间不能有其它语句,否则会打断其连续性(逻辑)else if(flag == 2){printf("执行语句2\n");}else if(flag == 3){printf("执行语句3\n");}else{printf("执行语句4\n");}// (2)、switch语句的基本用法// 1、switch(n)语句中的n为字符, case 语句为:字符char ch1 = 'a';switch (ch1) // 1、switch(n) 语句中的 n 必须是一个整型表达式,即 switch 判断的数据必须是整型(字符(本质上就是单字节整型)、整型数据(变量(num1、num2...)、常量(1,2,3...)、整型表达式){case 'a': // 2、case 语句只能带整型常量,包括普通整型或字符,不包括 const 型数据printf("11111111\n");break; // 3、break 语句的作用是跳出整个 swtich 结构,没有 break 程序会略过case往下执行default: // 3、default 语句不是必须的,一般放在最后面(因此不需要 break)printf("shijienameda,woxiangdainiqukankan!\n"); break;}// 2、switch(n)语句中的n:整型数据, case 语句为:字符int n1 = 1;switch (n1) {case 1: printf("aaaaaaaaaaa\n");break; default:printf("shijienameda,woxiangdainiqukankan!\n"); break;}// 3、switch(n)语句中的n:常量数据(字符常量、整型常量), case 语句为:'a'...'z'switch ('a') {case 'a'...'z': printf("!!!!!!!!!!!!!\n");break; default: printf("shijienameda,woxiangdainiqukankan!\n"); break;}// 4、switch(n)语句中的n:整型表达式, case 语句为:普通整型或字符int a = 100;int b = 99;int c = 0;switch (c=a+b) {case 1: printf("^^^^^^^^^^\n");break; default: printf("shijienameda,woxiangdainiqukankan!\n"); break;}// (3)、实际项目中如果使用switch语句(指纹解锁)int finger_flag = 0;int n = 0;int finger_idbuf[5] = {0};int count = 0;char select = 0;while (1){switch (finger_flag){case 0:goto run_label;break;case 1:printf("1、请按指纹!\n");scanf("%d", &n); // 模拟指纹操作while( getchar() != '\n');if (n == 1) // 让其接下下面的操作finger_flag = 2; elsefinger_flag = 1;break;case 2:printf("2、指纹正常!\n");scanf("%d", &n); while( getchar() != '\n');if (n == 1) finger_flag = 3; elsefinger_flag = 1; break;case 3:printf("3、请再次按指纹!\n");scanf("%d", &n); while( getchar() != '\n');if (n == 1) finger_flag = 4; elsefinger_flag = 1; break;case 4:printf("4、指纹正常!\n");scanf("%d", &n); while( getchar() != '\n');if (n == 1) finger_flag = 5; elsefinger_flag = 1; break;case 5:printf("5、正在对比两次指纹\n");scanf("%d", &n); while( getchar() != '\n');if (n == 1) finger_flag = 6; elsefinger_flag = 1; break;case 6:printf("6、对比成功,两次指纹一致\n");printf("请输入指针ID号:\n");scanf("%d", &finger_idbuf[count]);while( getchar() != '\n');printf("查询(c) 继续(y) 退出(n)\n");scanf("%c", &select); while( getchar() != '\n');count++;if (select == 'y') finger_flag = 1; else if(select == 'n') finger_flag = 99; else if(select == 'c') {printf("指纹库里面的ID号:\n");for (int i = 0; i < 5; i++){printf("finger_idbuf[%d] = %d\n", i, finger_idbuf[i]);}finger_flag = 1; } break;default :goto exit_sys_label;break;}}
int n2 = 0;int cnt = 0;run_label:n2 = 1;cnt = 0;switch (n2){case 0:printf("1111111\n"); break;case 1:printf("2222222\n"); cnt = 100; case 2:printf("3333333\n");cnt = 200; case 3:printf("444444\n"); cnt = 300; break;default:break;}printf("cnt == %d\n", cnt);exit_sys_label:printf("已退出指纹模块系统\n");return 0;
}
三、const ---
- 逻辑:使一个变量不可修改
- 作用:
- 修饰普通变量,使之不可修改
- 修饰指针变量,使之不可修改或者使其指向的目标不可修改
#include <stdio.h>
int main(int argc, char const *argv[])
{// (1)、没有const修饰的时候int num1 = 100; // 定义了一个int型的变量(该变量可读可写)num1 = 200;printf("num1 == %d\n", num1);// (2)、有const修饰的时候// 1、写法1:int const num2 = 200; // 初始化,该变量设置成了只读(该变量的值不可变)// num2 = 400; // 可读不可写(报错误: error: assignment of read-only variable ‘num3’)printf("num2 == %d\n", num2);// 2、写法2:const int num3 = 300; // 初始化,该变量设置成了只读(该变量的值不可变)// num3 = 500; // 可读不可写(报错误: error: assignment of read-only variable ‘num3’)printf("num3 == %d\n", num3);// (3)、case 语句只能带整型常量,包括普通整型或字符,不包括 const 型数据。const int num4 = 100;switch ( num4 ){// case num4: case 100:printf("11111111\n");break;default:break;}return 0;
}
四、while循环
- 逻辑:使得程序中每一段代码可以重复循环地运行
- 流程图:
- while循环:先判断,循环(入口判断)

- 示例代码:
#include <stdio.h>// 界面功能函数
int inf1_flag = 0;
int inf2_flag = 0;
int inf3_flag = 0;
int n = 0;// 界面1
void Inf1_loop(void)
{printf("你正处在第一层循环中: 请输入控制语句!\n");scanf("%d", &n);while( getchar() !='\n');switch (n){case 1: // 功能1:进去inf2界面2inf2_flag = 1;printf("inf1:func1\n");break;case 2: // 功能2:printf("inf1:func2\n");break;case 3: // 功能3: 退出inf1_flag = 0;printf("退出inf1循环\n");break;}
}// 界面2
void Inf2_loop(void)
{printf("你正处在第二层循环中: 请输入控制语句!\n");scanf("%d", &n);while( getchar() !='\n');switch (n){case 1: // 功能1:进去inf3界面3inf3_flag = 1;printf("inf2:func1\n");break;case 2: // 功能2:printf("inf2:func2\n");break;case 3: // 功能3: 退出inf2_flag = 0;printf("退出inf2循环\n");break;}
}// 界面3
void Inf3_loop(void)
{printf("你正处在第三层循环中: 请输入控制语句!\n");scanf("%d", &n);while( getchar() !='\n');switch (n){case 1: // 功能1:printf("inf3:func1\n");break;case 2: // 功能2:printf("inf3:func2\n");break;case 3: // 功能3: 退出inf3_flag = 0;printf("退出inf3循环\n");break;}
}// 主函数
int main(int argc, char const *argv[])
{// (1)、基本用法:// 1、紧凑程度更好,不可以留遗言int flag1 = 0;while (flag1 < 5){flag1++;printf("flag1 == %d\n", flag1);}// 2、比较分散,但可以留遗言int flag2 = 0;while (1) // 死循环(因为条件一直为真){flag2++;printf("flag2 == %d\n", flag2); if (flag2 > 4){printf("啊,我死了,家产由最帅的那个继承\n"); // 退出前措施break;} }// (2)、多重循环 --- 界面(逻辑)功能跳转的时候inf1_flag = 1;while ( inf1_flag == 1) // 最外层循环(第一个界面(逻辑)){Inf1_loop();while ( inf2_flag == 1){Inf2_loop();while (inf3_flag == 1){Inf3_loop();}} }return 0;
}
五、do-while循环
- 逻辑:使得程序中每一段代码可以重复循环地运行
- 流程图:
- do-while 循环:先循环,再判断(出口判断)

- 语法点:
- while 循环先进行判断,条件为真后才执行循环体,因此循环体可能一遍也不执行。
- do-while 循环先执行循环体,再进行判断,因此循环体至少会执行一遍。
- do-while 循环中的 while 语句后面有分号;
- 示例代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{// // 1、测试:循环输出一系列的正数,直到100为止(不满足条件也会再执行一遍)// int num = 0;// printf("请输入一个整数\n");// scanf("%d", &num);// do// {// printf("%d\n", num);// num++;// } while (num<=100);// (2)、其它特性都和while循环一致// 1、紧凑程度更好,不可以留遗言int flag1 = 0;do{flag1++;printf("flag1 == %d\n", flag1);} while (flag1<5);// 2、比较分散,但可以留遗言int flag2 = 0;do{flag2++;printf("flag2 == %d\n", flag2);if (flag2 > 4){printf("快把浏览器记录删除了!!!快!!!\n"); // 退出前的措施printf("要留清白在人间\n");break;}} while (1);return 0;
}
六、for循环
- 逻辑:与 while 循环类似,但更加紧凑,for 循环将控制循环的变量集中在一行
- 语法点:
- 循环头的标准语法是: for(表达式1 ; 表达式2 ; 表达式3)
- 表达式3:一般用来更新循环控制变量
- 表达式2:一般用来作为循环判定条件,为真则进入循环,为假则跳出循环
- 表达式1:一般用来初始化循环控制变量
- 三个表达式均可以省略,但分号不能省略( for( ; ; ) == 相当于while(1) )
- 示例代码:
#include <stdio.h>
#include <unistd.h>int main(int argc, char const *argv[])
{// (1)、for循环和while循环的区别for (int i = 0; i < 5; i++) // 此处的int i;在新版本编译器中可以放在for循环体内,但是在低级编译器里面不行{printf("i == %d\n", i);}// 相当于:int num1 = 0; // 相当于for循环语句的:表达式1while (num1 < 5) // 相当于for循环语句的:表达式2{printf("num1 == %d\n", num1); // 相当于for循环语句的要运行的语句num1++; // 相当于for循环语句的:表达式3}// // (2)、- 三个表达式均可以省略,但分号不能省略( for( ; ; ) == 相当于while(1) )// for ( ; ; )// {// printf("111111\n");// sleep(1);// }// // (3)、单独使用表达式1// for (int num2,num3=1,num4; ; )// {// printf("num2 == %d\n", num2);// printf("num3 == %d\n", num3);// printf("num4 == %d\n", num4);// sleep(1);// }// // (4)、单独使用表达式2// // 1、简单的条件// int num5 = 0;// for ( ; num5<5; )// {// printf("num5 == %d\n", num5);// num5++;// sleep(1);// }// // 2、笔试题// int a2 = 0;// int n3 = 0;// int b2 = 9;// for ( ; a2=10,n3=10,b2>10; ) // 先执行>号,再执行a2=10,n3=10,// {// printf("1111111111111\n");// sleep(1);// }// printf("a2 == %d\n", a2);// printf("n3 == %d\n", n3);// (5)、单独使用表达式3int a3 = 0;int n4 = 0;int b3 = 0;for ( ; ; a3++,n4++,n4=a3+b3){printf("a3 == %d\n", a3);printf("n4 == %d\n", n4);printf("b3 == %d\n", b3);sleep(1);}return 0;
}
七、break与continue
- 逻辑:
- break:① 跳出 switch 语句; ② 跳出当前层的循环体
- continue:结束当次循环,进入下次循环
- 示例代码:
#include <stdio.h>
int main(int argc, char const *argv[])
{// // (1)、- break:① 跳出 switch 语句; ② 跳出当前层的循环体// // 1、跳出 switch 语句// int n1 = 0;// int flag = 1;// while ( flag == 1)// {// scanf("%d", &n1);// while( getchar()!='\n');// switch (n1)// {// case 1:// printf("1111111\n");// flag = 0; // 如果要连带着退出while循环,建议设置flag来直接退出// break; // 这个break只是退出switch语句,并非退出while循环// case 2:// printf("222222\n");// break;// default:// break;// }// }// // 2、跳出当前层的循环体// // a、while循环体(do...while也是如此)// int n2 = 0;// while (1)// {// scanf("%d", &n2);// while( getchar()!='\n');// if (n2 == 1)// {// printf("333333333!\n");// break; // 跳出当前循环// }// else// {// printf("44444444444\n");// }// }// b、for循环体int n3 = 0;for (int i = 0; i < 10; i++, n3++){if (n3 == 5){printf("5555555555555555\n"); break;} }int n4 = 0;for ( ; ; ){if (n4 == 5){printf("6666666666666\n"); break;} n4++; }// (2)、- continue:结束当次循环,进入下次循环for (int i = 0; i < 100; i++){if ((i%7) == 0) // 避免一些你不想执行的操作,但是又要继续下一个循环,就使用continue{continue;}printf("%d\n", i);}return 0;
}
八、goto语句
- 逻辑:无条件跳转
- 语法:
- goto语句直接跳转到本代码块中({}的范围)的标签处
- 标签指的是以冒号结尾的标识符
- 作用:
- goto语句的无条件跳转不利于程序的可读性,不建议使用(不推荐,除非迫不得已)
- goto语句常被用在程序的错误处理中(推荐)
- goto语句常被用在程序的调试中(推荐)
- 示例代码:
#include <stdio.h>
#include <unistd.h>// 普通函数(模拟一个函数功能,然后其有很多的错误返回值)
int Func(int num)
{// 申请资源switch (num){case 1: // 返回-1,-2,-3就不是正常退出 return -1;case 2: return -2;case 3: return -3;}return 0; // 返回0就是正常退出
}// 主函数
int main(int argc, char const *argv[])
{// (1)、goto语句常被用在程序的错误处理中int ret = Func(0);if (ret < 0){printf("111111111111111111111111111\n", __LINE__);goto func_error_label; // - goto语句直接跳转到本代码块中({}的范围)的标签处}printf("Func函数正常运行中!\n");// (2)、goto语句常被用在程序的调试中goto debug_label; // 1、调试while (1){while (1){while (1){while (1){while (1){sleep(1);printf("我现在在第五层循环中!\n");goto while1_label; // 2、功能嵌套了太多的循环,导致逻辑紊乱,迫不得已}}} }
while1_label:printf("回到了第一层循环中!\n");}
debug_label:printf("正在调试的语句!\n");跳转逻辑最好都是向下,不要一会上,一会下func_error_label: // - 标签指的是以冒号结尾的标识符switch (ret){case -1: printf("解决问题,将错误码为-1的问题解决(%d行)(一般是将资源回收,避免浪费系统资源)\n", __LINE__);break;case -2: printf("解决问题,将错误码为-2的问题解决(%d行)(一般是将资源回收,避免浪费系统资源)\n", __LINE__);break;case -3: printf("解决问题,将错误码为-1的问题解决(%d行)(一般是将资源回收,避免浪费系统资源)\n", __LINE__);break;}return 0;
}
至此,希望看完这篇文章的你有所收获,我是Bardb,译音八分贝,期待下期与你相见!
相关文章:
04控制流
一、二路分支 逻辑:程序中某段代码需要在满足某个条件时才能运行形式: if 语句:表达一种 如果-则 的条件执行关系if-else 语句:表达一种 如果-否则 的互斥分支关系 流程图: 注意: if 语句可以单独使用&…...
【Leetcode 每日一题】2506. 统计相似字符串对的数目
问题背景 给你一个下标从 0 0 0 开始的字符串数组 w o r d s words words。 如果两个字符串由相同的字符组成,则认为这两个字符串 相似 。 例如,“abca” 和 “cba” 相似,因为它们都由字符 ‘a’、‘b’、‘c’ 组成。然而,“…...
【Shell编程 / 9】脚本实战项目:从基础到进阶的自动化管理方案
文章目录 Shell脚本实战项目自动化部署脚本系统监控脚本文件备份脚本定时任务管理脚本文件传输自动化脚本自动化日志清理脚本用户管理脚本 Shell脚本实战项目 在掌握了 Shell 脚本的基本语法和高级技巧后,实践是进一步提升脚本编写能力的关键。通过参与一些实际的项…...
在PyTorch中使用插值法来优化卷积神经网络(CNN)所需硬件资源
插值法其实就是在已知数据点之间估计未知点的值。通过已知的离散数据点,构造一个连续的曲线函数,预测数据点之间的空缺值是什么并且自动填补上去。 适用场景: 在卷积神经网络(CNN)中的应用场景中,经常遇到计算资源有限,比如显存不够或者处理速度慢,需要用插值来降低计…...
黄金市场现状与驱动因素分析
一、当前市场现状:挤兑、运力与供应链危机 全球金库告急与运输瓶颈 伦敦商业银行金库的黄金存量告急,纽约和伦敦市场出现“史诗级挤兑”。提取英格兰银行金库的黄金需等待4-8周,远高于常规的几天时间[citation:用户描述]。专业运输车辆超负荷…...
Linux arm64 IOMMU总结
一、DMA的引入 Non-DMA:CPU直接与设备进行数据交互,CPU的负载会随着数据的读写而增加; DMA:CPU不参与数据的直接传输,DMA Controller负责Device与Memory之间的数据搬运,并以中断信号的形式通知CPU…...
服务器通过 ollama 运行deepseek r1
1、服务器环境简介 56核 CPU64G 内存无显卡已安装 Ollama 2、下载模型与配置 正常可以通过 ollama pull 或 ollama run 命令直接下载,但通常会遇到连接超时、找不到网址等总理。因此,可以使用国内的模型站进行下载,在这里使用魔塔查找模型…...
MYSQL学习笔记(九):MYSQL表的“增删改查”
前言: 学习和使用数据库可以说是程序员必须具备能力,这里将更新关于MYSQL的使用讲解,大概应该会更新30篇,涵盖入门、进阶、高级(一些原理分析);这一篇讲述一些在MYSQL的数据类型,和表的“增删改查”基本操作;虽然MYSQ…...
Oracle JDK、Open JDK zulu下载地址
一、Oracle JDK https://www.oracle.com/java/technologies/downloads/ 刚进去是最新的版本,往下滑可以看到老版本 二、Open JDK的 Azul Zulu https://www.azul.com/downloads/ 直接可以选版本等选项卡...
分类解析决策模型
一、按理性程度划分的决策模型 1. 完全理性模型(古典决策理论) 核心假设:决策者拥有完全信息,能计算所有选项的效用并选择最优解。数学模型: 期望效用理论(Expected Utility Theory, EU): E U = ∑ ( p i...
【SPIE出版,见刊快速,EI检索稳定,浙江水利水电学院主办】2025年物理学与量子计算国际学术会议(ICPQC 2025)
2025年物理学与量子计算国际学术会议(ICPQC 2025)将于2025年4月18-20日在中国杭州举行。本次会议旨在汇聚全球的研究人员、学者和业界专家,共同探讨物理学与量子计算领域的最新进展与前沿挑战。随着量子技术的快速发展,其在信息处…...
【网络】高级IO——Reactor版TCP服务器
1.什么是Reactor Reactor 是一种应用在服务器端的开发模式(也有说法称 Reactor 是一种 IO 模式),目的是提高服务端程序的并发能力 它要解决什么问题呢? 传统的 thread per connection 用法中,线程在真正处理请求之前首…...
3.Docker常用命令
1.Docker启动类命令 1.启动Docker systemctl start docker 2.停止Docker systemctl stop docker 3.重启Docker systemctl restart docker 4.查看Docker状态 systemctl status docker 5.设置开机自启(执行此命令后每次Linux重启后将自启动Docker) systemctl enable do…...
【uni-app】对齐胶囊容器组件
代码碎片 <template><div><view :style"{ height: ${statusBarHeight}px }"></view><viewclass"":style"{height: ${menuButtonHeight menuButtonPadding * 2}px,width: ${menuButtonInfo.left}px,}"><slot …...
JUC并发—10.锁优化与锁故障
大纲 1.标志位修改场景优先使用volatile(服务优雅停机) 2.数值递增场景优先使用Atomic类(心跳计数器) 3.共享变量仅对当前线程可见的场景优先使用ThreadLocal(edits log的处理) 4.读多写少需要加锁的场景优先使用读写锁(服务注册表的并发读写) 5.尽量减少线程对锁占用时间…...
Java 大视界 -- 区块链赋能 Java 大数据:数据可信与价值流转(84)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
大数据学习之PB级音乐数据中心数仓综合项目(1)-理论知识和项目需求、歌曲热度与歌手热度排行
一、理论知识和项目需求 1.课程介绍 2.数据库与ER建模_数据库三范式 3.数据库与ER建模_ER实体关系模型 4.数据库与维度建模_数据仓库(DATA WAREHOUSE) 5.数据库与维度建模_数据库与数据仓库区别 6.数据库与维度建模_数据仓库的发展历程 7.数据库与维度建模_维度建模 8.数据库与…...
DeepSeek vs ChatGPT:AI 领域的华山论剑,谁主沉浮?
一、引言 在当今科技飞速发展的时代,人工智能(AI)已然成为推动各领域变革的核心力量。而在人工智能的众多分支中,自然语言处理(NLP)因其与人类日常交流和信息处理的紧密联系,成为了最受瞩目的领…...
七星棋牌顶级运营产品全开源修复版源码教程:6端支持,200+子游戏玩法,完整搭建指南(含代码解析)
棋牌游戏一直是移动端游戏市场中极具竞争力和受欢迎的品类,而七星棋牌源码修复版无疑是当前行业内不可多得的高质量棋牌项目之一。该项目支持 6大省区版本(湖南、湖北、山西、江苏、贵州),拥有 200多种子游戏玩法,同时…...
本2硕9电子科学专业,想走linux或是嵌入式,要具体学哪些技术
今天给大家分享的是一位粉丝的提问,本2硕9电子科学专业,想走linux或是嵌入式,要具体学哪些技术 接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。 同学提问: 你好&…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek
文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama(有网络的电脑)2.2.3 安装Ollama(无网络的电脑)2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
