访问国外网站的软件/互联网营销师报名费

访问国外网站的软件,互联网营销师报名费,微盟做一个小程序大概多少钱,云商城app下载目录 六、控制流 七、函数 八、数组和指针 六、控制流 76. if 语句可以(嵌套), if 语句可以嵌套在另一个 if 语句内部,形成(嵌套的条件判断结构),用于处理更复杂的条件判断逻辑。 77. els…

目录

六、控制流

七、函数

八、数组和指针


六、控制流

76. if 语句可以(嵌套), if 语句可以嵌套在另一个 if 语句内部,形成(嵌套的条件判断结构),用于处理更复杂的条件判断逻辑。

77. else if 语句用于处理(多个互斥条件), else if 语句是 if 语句的(扩展),可以提供(多个备选的条件判断分支)。

78. switch 语句的 case 标签必须是(常量表达式), case 标签的值必须是(唯一的),不能重复。(标签必须是整形)

79. switch 语句可以(没有default标签),如果 switch 语句没有 default 标签,并且没有一个 case 标签的值与 switch 表达式的值匹配,那么 switch 语句将(不执行任何操作)。

80. while 循环的条件在(每次迭代前检查),如果条件为真,则执行(循环体);否则,跳出循

环。 while 循环可能(一次也不执行循环体)。

81. do...while 循环(至少执行一次代码块), do...while 循环与 while 循环类似,但是do...while 循环的条件在(每次迭代后检查)。

82. for 循环的初始化、条件和更新表达式可以(省略),如果省略了初始化表达式,那么循环(不

会进行初始化操作);如果省略了条件表达式,那么循环将(无限循环)。

83. 可以使用 break 语句跳出(多层嵌套循环), break 语句只能跳出(当前循环),不能直接跳

出多层嵌套循环。

84. 可以使用 continue 语句跳过(当前循环迭代的剩余部分), continue 语句(不会跳出循 环)。

85. goto 语句可以跳转到(同一函数内的任何标签位置), goto 语句应该(谨慎使用),因为它

可能导致代码(难以理解和维护)。


七、函数

86. 函数可以(没有参数),表示该函数不需要接收任何输入数据,通常用于执行一些(独立的操

作)。

87. 函数可以(有多个参数),用于接收多个输入数据,参数之间用(逗号,)分隔,参数的类型和顺序必须与函数声明中的参数类型和顺序(一致)。

88. 函数参数可以是(任何数据类型),包括基本数据类型、结构体、共用体、指针等,参数的类型决定了函数可以接收的(数据种类)。

89. 函数参数传递可以是(值传递)或(地址传递),值传递是指将参数的值复制给函数,地址传递是指将参数的地址传递给函数。

90. 值传递是指将(参数的值复制给函数的形式参数),在函数内部对形式参数的修改(不会影响实际参数的值),可以保护实际参数的值不被修改。

91. 地址传递是指将(参数的地址传递给函数的形式参数),在函数内部对形式参数指向的内存空间进行修改(会影响实际参数的值),可以用于在函数内部修改实际参数的值。

92. 在函数内部修改(值传递的参数)不会影响原始变量,因为函数操作的是(参数的副本)。

93. 在函数内部修改(地址传递的参数)会影响原始变量,因为函数操作的是(原始变量的内存地

址)。

94. 函数可以返回(任何数据类型),包括基本数据类型、结构体、共用体、指针等,返回值的类型决定了函数可以返回的(数据种类)。

95. 函数可以使用(return语句)返回值, return 语句用于将函数的结果返回给(调用者),可以

出现在函数的(任何位置)。


八、数组和指针

96. 数组元素在内存中是(连续存储的),这意味着可以通过(指针运算)来访问数组元素。

97. 数组名是指向(数组第⼀个元素的指针),这意味着可以使用数组名来(访问数组元素)。

98. 可以使用(指针)访问数组元素,通过将指针指向数组的某个元素,然后使用指针运算来访问其他元素。

99. *(arr + i)等价于(arr[i],都表示访问数组 arr 的第 i 个元素,前者是指针运算,后者是数组下标运算。

100. 指针可以进行(加减运算),用于在内存中移动指针的位置,指针加1表示指向(下一个相同类型的元素)。

101. 指针加1表示指向(下一个相同类型的元素),例如,如果 p 是一个指向 int 类型变量的指

针,那么 p + 1 将指向下一个 int 类型变量的内存地址。(移动sizeof(类型)个字节)

102. 指针减1表示指向(上一个相同类型的元素),例如,如果 p 是一个指向 int 类型变量的指

针,那么 p - 1 将指向上一个 int 类型变量的内存地址。

103. 可以使用(指针)遍历数组,通过将指针指向数组的第⼀个元素,然后使用指针运算来依次访问数组的每个元素。

104. 可以使用(指针作为函数参数)传递数组,通过将数组名作为参数传递给函数,函数可以访问和修改数组的元素。

105. 在函数内部修改(指针参数指向的数组元素)会影响原始数组,因为指针传递的是数组的(地址)。

106. 多维数组是(数组的数组),例如,二维数组可以看作是(行和列组成的表格)。

107. 多维数组元素在内存中也是(连续存储的),但其访问方式需要考虑(行和列的索引)。

108. 字符串是(字符数组),以(空字符 \0 )结尾,空字符用于(标记字符串的结束)。

109. 字符串常量存储在(只读内存区域),程序(不能修改)字符串常量的内容。

110. 可以使用(strlen函数)获取字符串的长度, strlen 函数长度计数不包括(空字符 \0 )。

111. 可以使用(strcpy函数)复制字符串, strcpy 函数会将源字符串的(空字符\0)也复制到目

标字符串。

112. 可以使用(strcat函数)连接字符串, strcat 函数会将源字符串连接到目标字符串的(末

尾),并添加(空字符\0)。

113. 可以使用(strcmp函数)比较字符串, strcmp 函数返回(0)表示两个字符串相等,返回

(正数)表示第一个字符串大于第二个字符串,返回(负数)表示第一个字符串小于第二个字符

串。

114. 可以使用(strstr函数)在一个字符串中查找子字符串, strstr 函数返回子字符串在字符串中

(第一次出现的位置的指针),返回( NULL )表示子字符串不存在。

115. 指针是一种(特殊的变量),用于(存储内存地址)。

116. 指针可以指向(任何数据类型),包括(基本数据类型)、(结构体)、(联合体)、(函数)等。

117. C语言中,指针是一个变量,存储的是(另一个变量的地址)。(通过指针可以间接访问和修改变量的值。指针是C语言中非常重要的概念,可以用于实现动态内存分配、函数参数传递等高级

特性。)

118. 定义一个指向整型变量的指针: int *p; 。( * 表示 p 是一个指针变量, int 表示 p 指向的是整型变量。 p 可以存储任何整型变量的地址。)

例:

int a = 10;
int *p; // 定义⼀个指向int的指针
p = &a; // 将a的地址赋值给p

119. 使用 & 运算符获取变量的(地址)。例如: p = &a; 。( & 是取地址运算符,用于获取变量在内存中的地址。每个变量在内存中都有一个唯一的地址。)

例:

int a = 10;
printf("变量a的地址是:%p\n", &a); // 输出a的地址,%p是⽤于输出指针的格式化字符

120. 使用 * 运算符访问指针指向的变量的(值)。例如: int b = *p; 。( * 是解引用运算符,用于获取指针指向的变量的值。解引用指针可以访问和修改指针指向的变量。)

例:

int a = 10;
int *p = &a;
printf("指针p指向的值是:%d\n", *p); // 输出p指向的值,即a的值
*p = 20; // 通过指针修改a的值
printf("变量a的值现在是:%d\n", a); // 输出a的值,现在是20

121. 指针可以进行算术运算,例如 p++ ,表示指针指向下一个内存单元。(指针的算术运算需要注意指针类型,不同类型的指针每次移动的字节数不同。例如, int 指针每次移动4个字节, char 指针每次移动1个字节。)

例:

int arr[5] = {1, 2, 3, 4, 5};
int *p = arr; // p指向数组的第⼀个元素
printf("第⼀个元素的值是:%d\n", *p);
p++; // p指向数组的第⼆个元素
printf("第⼆个元素的值是:%d\n", *p);

122. 数组名本质上是⼀个指向数组首元素的指针。(例如: int arr[5]; int *p = arr; p 指向arr[0]。这意味着可以使用指针来访问数组元素。)

例:

int arr[5] = {1, 2, 3, 4, 5};
int *p = arr;
printf("数组的第⼀个元素是:%d\n", *arr); // 使⽤数组名访问第⼀个元素
printf("数组的第⼀个元素是:%d\n", *p); // 使⽤指针访问第⼀个元素

123. 可以使用指针遍历数组。(例如: for (int i = 0; i < 5; i++) { printf("%d", *(p + i)); } 。通过指针的算术运算,可以依次访问数组中的每个元素。)

例:

int arr[5] = {1, 2, 3, 4, 5};
int *p = arr;
for (int i = 0; i < 5; i++) 
{printf("数组的第%d个元素是:%d\n", i + 1, *(p + i));
}

124. 函数指针是指指向函数的指针。(函数指针可以用于实现回调函数等高级特性。函数指针可以存储函数的地址,并可以通过指针调用函数。)

125. 定义一个函数指针: int (*p)(int, int); ,表示p指向一个返回值为int,参数列表为 (int, int)的函数。(例如: p = add; p指向之前定义的add函数。函数指针的类型必须与指向的函数的类型匹配。)

例:

int add(int a, int b) 
{return a + b;
}int main() 
{int (*p)(int, int); // 定义⼀个函数指针p = add; // 将add函数的地址赋值给pint result = p(3, 5); // 通过函数指针调⽤add函数printf("3 + 5 = %d\n", result); // 输出结果return 0;
}

126. 可以使用函数指针调用函数。(例如: int result = p(3, 5); 。通过函数指针可以灵活地调用不同的函数,实现回调函数等高级特性。)

127. 指针可以作为函数的参数,用于传递变量的地址。(通过指针参数,函数可以修改外部变量的值。这是C语言中实现引用传递的方式。)

示例:

void swap(int *a, int *b) 
{int temp = *a;*a = *b;*b = temp;
}int main() 
{int x = 10, y = 20;printf("交换前:x = %d, y = %d\n", x, y);swap(&x, &y); // 传递x和y的地址给swap函数printf("交换后:x = %d, y = %d\n", x, y);return 0;
}

128. 动态内存分配使用 malloc() 函数。( malloc() 函数在 stdlib.h 头文件中定义,用于在堆上分配指定大小的内存空间,返回指向该内存空间的指针,如果分配失败则返回NULL。动态内存分配可以根据程序的需要动态地分配内存空间。)

示例:

#include <stdio.h>
#include <stdlib.h>
int main() 
{int *p = (int *)malloc(5 * sizeof(int)); // 分配5个int⼤⼩的内存空间if (p == NULL) {printf("内存分配失败!\n");return 1;}for (int i = 0; i < 5; i++) {p[i] = i + 1; // 初始化数组}for (int i = 0; i < 5; i++) {printf("%d ", p[i]); // 输出数组元素}printf("\n");free(p); // 释放内存空间return 0;
}

129. 动态分配的内存需要使用 free() 函数释放。( free() 函数用于释放 malloc() 函数分配的内存空间,避免内存泄漏。如果不释放动态分配的内存,会导致程序占用越来越多的内存,最终导致程序崩溃。)

130. void * 指针是一种通用指针,可以指向任何类型的数据。( void * 指针不能直接解引用,需要先转换为具体的指针类型。 void * 指针可以用于在不同的数据类型之间进行转换。)

示例:

#include <stdio.h>
#include <stdlib.h>
int main() 
{int a = 10;void *p = &a; // void指针可以指向任何类型的数据int *q = (int *)p; // 将void指针转换为int指针printf("a的值是:%d\n", *q); // 通过int指针访问a的值return 0;
}

131. (指针的本质是地址):指针变量存储的是内存地址,通过它可以间接访问或修改该地址上存储的数据。(理解指针是理解C语言的关键。例如, int *p = &a; 表示指针 p 存储了变量a 的内存地址。)

示例:

#include <stdio.h>
int main() 
{int a = 10;int *p = &a; // p 存储了 a 的地址printf("a 的值: %d\n", a);printf("p 指向的值: %d\n", *p); // 通过 p 访问 a 的值*p = 20; // 通过 p 修改 a 的值printf("a 的新值: %d\n", a);return 0;
}

132. (多级指针用于管理指针的地址):多级指针是指指向指针的指针,常用于动态创建多维数组或处理复杂数据结构。(例如, int **p; 表示 p 是一个指向 int* 类型变量的指针,可以用来管理动态分配的二维数组。)

示例: 动态分配二维数组

#include <stdio.h>
#include <stdlib.h>
int main() 
{int **arr;int rows = 3, cols = 4;int i, j;// 分配⾏指针空间arr = (int **)malloc(rows * sizeof(int *));for (i = 0; i < rows; i++) {arr[i] = (int *)malloc(cols * sizeof(int));}// 初始化数组for (i = 0; i < rows; i++) {for (j = 0; j < cols; j++) {arr[i][j] = i * cols + j;}}// 打印数组for (i = 0; i < rows; i++) {for (j = 0; j < cols; j++) {printf("%d ", arr[i][j]);}printf("\n");}// 释放内存for (i = 0; i < rows; i++) {free(arr[i]);}free(arr);return 0;
}

133. (指针数组是存储指针的数组):指针数组的每个元素都是一个指针,常用于存储字符串或管理多个动态分配的内存块。(例如, char *str[] = {"hello", "world"}; 定义了一个字符串指针数组, str[0] 指向 "hello" 字符串的首地址。)

示例: 存储字符串数组

#include <stdio.h>
int main() 
{char *str[] = {"hello", "world", "!"};int i;for (i = 0; i < 3; i++) {printf("%s\n", str[i]);}return 0;
}

134. (函数指针指向函数的入口地址):函数指针可以存储函数的地址,并通过该指针调用函数,实现回调函数和动态函数调用。(例如, int (*func)(int, int); 定义了⼀个函数指针,可以指向接受两个 int 参数并返回 int 值的函数。)

示例:

#include <stdio.h>
int add(int a, int b) 
{return a + b;
}int main() 
{int (*func)(int, int) = add; // 函数指针指向 add 函数int result = func(5, 3); // 通过函数指针调⽤ add 函数printf("Result: %d\n", result);return 0;
}

135. (函数指针数组用于存储多个函数指针):函数指针数组是一个数组,其每个元素都是⼀个函数指针,常用于实现命令分发器或状态机。(例如, int (*operations[])(int, int) = {add, subtract}; 定义了一个函数指针数组,可以根据索引调用不同的函数。)

示例:

#include <stdio.h>
int add(int a, int b) { return a + b; }
int subtract(int a, int b) { return a - b; }int main() 
{int (*operations[])(int, int) = {add, subtract};int choice = 0; // 0: add, 1: subtractint result;result = operations[choice](10, 5);printf("Result: %d\n", result);return 0;
}

136. void 指针是通用指针,可以指向任何类型的数据): void 指针可以指向任何数据类型,但在使用时需要强制类型转换。(例如, void *p; int a = 10; p = &a; int *q = (int *)p; void 指针 p 指向 int 类型的变量 a ,需要先转换为 int * 类型才能通过 *q 访问 a 的值。)

示例:

#include <stdio.h>
int main() 
{int a = 10;void *p = &a; // void 指针指向 int 类型变量int *q = (int *)p; // 强制类型转换printf("Value: %d\n", *q);return 0;
}

137. (指针的算术运算与指针类型相关):指针的加减运算会根据指针所指向的数据类型的大小进行调整。(例如, int *p; p++; p 的值会增加 sizeof(int) 个字节,即 4 个字节。)

示例:

#include <stdio.h>
int main() 
{int arr[] = {1, 2, 3, 4, 5};int *p = arr; // p 指向数组⾸元素printf("第⼀个元素: %d\n", *p);p++; // p 指向下⼀个元素printf("第⼆个元素: %d\n", *p);return 0;
}

138. (指针与数组名的关系):数组名在大多数情况下可以看作是指向数组首元素的指针,但数组名不是指针变量,不能进行赋值操作。(例如, int arr[10]; int *p = arr; p 指向数组 arr 的首元素,但 arr = p; 是非法的。)

示例:

#include <stdio.h>
int main() 
{int arr[] = {1, 2, 3};int *p = arr;printf("第⼀个元素: %d\n", *arr); // 通过数组名访问printf("第⼀个元素: %d\n", *p); // 通过指针访问return 0;
}

139. (const 指针用于限制指针的修改权限): const 关键字可以用于限制指针本身或指针所指向

的数据的修改权限。(例如, const int *p; 表示指针 p 指向的数据是常量,不能通过p 修改数据的值; int * const p; 表示指针 p 本身是常量,不能修改 p 的指向。)

示例:

#include <stdio.h>
int main() 
{int a = 10;const int *p = &a; // 不能通过 p 修改 a 的值// *p = 20; // 错误: assignment of read-only location *pa = 20; // 正确: 可以直接修改 a 的值printf("Value: %d\n", a);int *const q = &a; // q 指针本⾝不能修改指向*q = 30; // 正确: 可以通过 q 修改 a 的值// q = &a; // 错误: assignment to read-only variable qreturn 0;
}

140. (动态内存分配需要手动释放,避免内存泄漏):使用 malloc calloc 等函数动态分配的内存,需要使用 free 函数手动释放,否则会导致内存泄漏。(例如, int *p = (int*)malloc(100 * sizeof(int)); free(p); 分配了 100 个 int 类型的空间,使用完毕后需要调用 free(p) 释放内存。)

malloc和calloc函数分配的内存类型都为void*类型。

示例:

#include <stdio.h>
#include <stdlib.h>
int main() 
{int *p = (int *)malloc(100 * sizeof(int));if (p == NULL) {printf("内存分配失败\n");return 1;}// 使⽤ pfree(p); // 释放内存p = NULL; // 防⽌悬挂指针return 0;
}

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

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

相关文章

element-plus中,Tour 漫游式引导组件的使用

目录 一.Tour 漫游式引导组件的简单介绍 1.作用 2.基本使用 3.展示效果 二.实战1&#xff1a;介绍患者病历表单 1.要求 2.实现步骤 3.展示效果 结语 一.Tour 漫游式引导组件的简单介绍 1.作用 快速了解一个功能/产品。 2.基本使用 从官网复制如下代码&#xff1a; &…

【C++进阶】函数:深度解析 C++ 函数的 12 大进化特性

目录 一、函数基础 1.1 函数定义与声明 1.2 函数调用 1.3 引用参数 二、函数重载&#xff1a;同名函数的「多态魔法」&#xff08;C 特有&#xff09; 2.1 基础实现 2.2 重载决议流程图 2.3 与 C 语言的本质区别 2.4 实战陷阱 三、默认参数&#xff1a;接口的「弹性设…

鸿蒙UI开发

鸿蒙UI开发 本文旨在分享一些鸿蒙UI布局开发上的一些建议&#xff0c;特别是对屏幕宽高比发生变化时的应对思路和好的实践。 折叠屏适配 一般情况&#xff08;自适应布局/响应式布局&#xff09; 1.自适应布局 1.1自适应拉伸 左右组件定宽 TypeScript //左右定宽 Row() { …

基于EFISH-SBC-RK3576的无人机智能飞控与数据存储方案

一、方案背景 民用无人机在电力巡检、农业植保、应急救援等领域快速普及&#xff0c;但传统方案面临‌多协议设备兼容性差‌、‌野外环境数据易丢失‌、‌复杂电磁干扰‌三大痛点。 电鱼智能推出‌EFISH-SBC-RK3576‌&#xff0c;可集成双冗余总线接口与工业级加固存储&#x…

数据库----单表、多表

数据库 create database 数据库名称;---创建数据库create database 数据库名称 default charsetutf8mb4;---创建数据库&#xff0c;同时指定编码show databases;---查看当前数据库管理下存在多少数据库show databases like "db_%";---查询以db_开头的数据库select d…

DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加行拖拽排序功能示例6,TableView16_06 分页表格拖拽排序

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

谷歌推出Gemini实时AI视频功能,开启智能交互新体验

3月24日&#xff0c;谷歌发言人亚历克斯约瑟夫向媒体证实&#xff0c;谷歌已开始向 Gemini Live 推出新的人工智能功能。这些功能使 Gemini 能够“看到”用户的屏幕内容&#xff0c;或通过智能手机摄像头获取画面&#xff0c;并实时回答与之相关的问题。这一创新标志着人工智能…

Windows 新型零日漏洞:远程攻击可窃取 NTLM 凭证,非官方补丁已上线

近日&#xff0c;安全研究人员披露了一个新型 Windows 零日漏洞&#xff0c;影响从Windows 7和Server 2008 R2到最新Windows 11 v24H2及Server 2025的所有Windows操作系统版本。攻击者只需诱使用户在Windows资源管理器中查看恶意文件&#xff0c;即可利用该零日漏洞窃取NTLM&am…

一款超级好用且开源免费的数据可视化工具——Superset

认识Superset 数字经济、数字化转型、大数据等等依旧是如今火热的领域&#xff0c;数据工作有一个重要的环节就是数据可视化。 看得见的数据才更有价值&#xff01; 现如今依旧有多数企业号称有多少多少数据&#xff0c;然而如果这些数据只是呆在冷冰冰的数据库或文件内则毫无…

作业14 (2023-05-22_const修饰指针)

第1题/共5题【单选题】 C程序常见的错误分类不包含:( ) A.编译错误 B.链接错误 C.栈溢出 D.运行时错误 回答正确 答案解析: 栈溢出是运行时错误的一种,因此C程序不会将栈溢出错误单独列出来,栈溢出包含在运行时错误中。 因此:选择C 第2题/共5题【单选题】 以下关于…

《Tr0ll2 靶机渗透实战:弱口令+SUID+两种缓冲区溢出+ 提权完整+fcrackzip暴力破解+shellshock漏洞+脏牛三种root提权复盘》

Tr0ll2 1、主机发现 arp-scan -l 2、端口扫描 nmap -sS -sV 192.168.66.181 nmap -sS -A -T4 -p- 192.168.66.181 nmap --scriptvuln 192.168.66.181PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 2.0.8 or later 22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.4 (…

redis常用部署架构之redis分片集群。

redis 3.x版本后开始支持 作用&#xff1a; 1.提升数据读写速度 2..提升可用性 分片集群就是将业务服务器产生的数据储存在不同的机器上。 redis分片集群的架构 如上图所示&#xff0c;会将数据分散存储到不同的服务器上&#xff0c;相比于之前来说&#xff0c;redis要处…

分布式数据库介绍

分布式数据库介绍 一、定义与核心概念 分布式数据库是一种在物理上分散存储、逻辑上统一管理的数据管理系统&#xff0c;其核心特征包括数据分布性、逻辑关联性、场地透明性和可扩展性。根据最新定义&#xff0c;分布式数据库需具备分布式事务处理能力、平滑扩展能力&#xf…

MybatisPlus(SpringBoot版)学习第五讲:条件构造器和常用接口

目录 1.wrapper介绍 2.QueryWrapper 2.1 例1&#xff1a;组转查询条件 Compare Nested Join Func 2.2 例2&#xff1a;组装排序条件 2.3 例3&#xff1a;组装删除条件 2.4 例4&#xff1a;条件的优先级 2.5 例5&#xff1a;组装select子句 2.6 例6&#xff1a;实现子查…

计算机视觉算法实战——手术导航:技术、应用与未来

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​ ​​​​​​​​​ ​​ 1. 手术导航中的计算机视觉&#xff1a;领域介绍 计算机视觉在手术导航领域的应用代表了现代医学与人工智…

【科研绘图系列】R语言绘制PCA与变量的相关性散点图(scatter plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据画图输出图片系统信息介绍 【科研绘图系列】R语言绘制PCA与变量的相关性散点图(scatter plot) 加载R包 library(tidyverse) library(ggpubr)数据下载 …

深度解析Spring Boot可执行JAR的构建与启动机制

一、Spring Boot应用打包架构演进 1.1 传统JAR包与Fat JAR对比 传统Java应用的JAR包在依赖管理上存在明显短板&#xff0c;依赖项需要单独配置classpath。Spring Boot创新的Fat JAR&#xff08;又称Uber JAR&#xff09;解决方案通过spring-boot-maven-plugin插件实现了"…

安科瑞微电网能量管理控制箱,光伏发电的守护者

安科瑞顾强 随着工业的发展&#xff0c;很多用电设备和工厂设备采用直流系统供电&#xff0c;直流系统的正极和负极不接地。对于不接地&#xff08;IT&#xff09;配电系统&#xff0c;应该进行绝缘电阻的监控以保证供电系统的安全运行。 AIM-D100-TS 系列直流绝缘监测仪可以…

[计算机网络]网络I/O模型

欢迎来到啾啾的博客&#x1f431;。 这是一个致力于构建完善的Java程序员知识体系的博客&#x1f4da;&#xff0c;记录学习的点滴&#xff0c;分享工作的思考、实用的技巧&#xff0c;偶尔也分享一些杂谈&#x1f4ac;。 欢迎评论交流&#xff0c;感谢您的阅读&#x1f604;。…

Vue中使用JsonView进行JSON数据展示

前言 最近在开发公司的管理系统的操作日志模块&#xff0c;要查看某条操作日志的请求参数&#xff0c;要将请求的参数以 JSON 格式的形式展示出来&#xff0c;于是用到了Vue-JSON-Viewer 这个插件。 一、Vue-JSON-Viewer 基础入门 插件简介 Vue-JSON-Viewer 是一个用于在Vue项…