【C语言】基础语法1:变量和数据类型
下一篇:运算符和表达式
❤️🔥前情提要❤️🔥
欢迎来到C语言基本语法教程
在本专栏结束后会将所有内容整理成思维导图(结束换链接)并免费提供给大家学习,希望大家纠错指正。本专栏将以基础出发,在之后的教程中将会不断学习并详细讲解C语言的基本语法
及其高级用法
。
C语言是一种高级编程语言,由Dennis Ritchie在20世纪70年代开发出来。C语言具有简洁
、高效
、可移植
和可扩展
等特点,成为广泛使用的编程语言之一。
在进入工作岗位之前,语言是你简历上应该具备的基本技能之一。
基础知识总是枯燥无味
的,万丈高楼平地起
,希望和大家一起打好基础
,一起加油
!
🍪本教程内容干货满满,跟上步伐吧~🍪
作者介绍:
🎓 作者:某不知名编程爱好者📜
🗒️系列文章&专栏推荐: 🔗《华为机试题解析》 、🔗《C语言程序设计》、🔗 《MySQL数据库》
🕸️为大家推荐一款很好用的C语言刷题网站🔗点击跳转
🔖导航小助手🔖
- 🥬 开胃小菜
- 📑 变量
- 📑 常量
- 📑 数据类型
- 🏷️ 整型
- 🏷️ 浮点型
- 🏷️ 字符型
- 🏷️ 指针型
- 📑 数据类型转换
- 🏷️ 隐式类型转换
- 🏷️ 显式类型转换
- 🎀小结
🥬 开胃小菜
在本教程开始前,先来认识一下C语言最简单的程序“Hello C语言”
#include <stdio.h>int main() {printf("Hello, C语言!\n");return 0;
}
这个程序包含了一个头文件<stdio.h>
,它是C语言标准库中的一个头文件,提供了输入输出函数
等功能。
int main()
是程序的主函数
,其中printf()
函数用于输出字符串"Hello, C语言!",\n
表示换行符。
return 0
表示程序正常结束,返回值为0
。执行这个程序后,屏幕上会输出"Hello, C语言!"
。
上述程序带你了解了C语言程序的结构
,下面一起进入C语言
的世界吧!
📑 变量
💡 概念
数据类型
是指变量所代表的数据类型,包括整型
、浮点型
、字符型
、布尔型
等。不同的数据类型在存储方式
、占用空间
、取值范围
等方面有所不同,因此在使用时需要根据实际情况
进行选择。- 变量是用于
存储信息
的"容器"。 - 它可以在程序执行过程中不断地
改变其值
。 - 在C语言中,变量需要
先声明后使用
,并且需要指定
其数据类型
。
💡 变量的命名规则
- 变量名必须以
字母或下划线开头
,不能以数字开头。
int 3test; // 错误:变量名以数字开头
int _test; // 正确:变量名以下划线开头
- 变量名只能由
字母、数字和下划线
组成,不能使用其他特殊符号。
int test#; // 错误:变量名中含有特殊符号#
int test$; // 错误:变量名中含有特殊符号$
int test_; // 正确:变量名中含有下划线
- 变量名长度应该控制在一定范围内,一般不要超过
32个字符
。
int this_is_a_very_long_variable_name_that_should_be_avoided; // 错误:变量名过长
int short_name; // 正确:变量名长度适中
- 变量名应该具有一定的描述性,能够清晰地
表达变量的含义
。
int x; // 错误:变量名不具有描述性
int age; // 正确:变量名具有描述性
- 变量名
区分大小写
,例如变量x和变量X是不同的变量。
int x, X; // 正确:变量名区分大小写
- 变量在使用前必须
进行声明
,声明时需要指定变量的类型
。
int main() {int x; // 声明变量xx = 10; // 给变量x赋值return 0;
}
- 变量的值可以在声明时
初始化
,也可以在后面的程序中赋值
。
int main() {int x = 10; // 声明变量x并初始化为10x = 20; // 给变量x赋值为20return 0;
}
- 变量的
作用域
与声明位置
有关,一般分为全局变量
和局部变量
两种。
int x = 10; // 全局变量x
int main() {int y = 20; // 局部变量yreturn 0;
}
- 变量的
生命周期
与作用域
有关,一般分为静态变量
和动态变量
两种。
int main() {int x = 10; // 动态变量x,生命周期为函数运行期间static int y = 20; // 静态变量y,生命周期为整个程序运行期间return 0;
}
- 变量在使用时需要注意
数据类型的匹配
,不同类型的变量之间不能直接进行运算。
int x = 10;
float y = 3.14;
int z = x + y; // 错误:不同类型的变量不能直接进行运算
float w = x + y; // 正确:同类型的变量可以进行运算
💡 变量的数据类型
- 声明变量时需要
指定其数据类型
,例如:
int age; //声明一个整型变量age
float salary; //声明一个浮点型变量salary
char gender; //声明一个字符型变量gender
bool isMarried; //声明一个布尔型变量isMarried
-
在声明变量时,需要指定其数据类型,例如
int
表示整型
,float
表示浮点型
,char
表示字符型
,bool
表示布尔型
。 -
在
赋值
时需要注意变量的数据类型
,例如:
age = 20; //将整型数值20赋值给age变量
salary = 5000.0; //将浮点数值5000.0赋值给salary变量
gender = 'M'; //将字符'M'赋值给gender变量
isMarried = true; //将布尔值true赋值给isMarried变量
-
在赋值时,需要注意变量的数据类型,例如将整型数值赋值给整型变量,将浮点数值赋值给浮点型变量,将字符赋值给字符型变量,将布尔值赋值给布尔型变量。
-
在
使用变量
时也要注意其数据类型
,例如:
printf("My age is %d\n", age); //打印age变量的值,%d表示整型
printf("My salary is %.2f\n", salary); //打印salary变量的值,%.2f表示浮点型,保留2位小数
printf("My gender is %c\n", gender); //打印gender变量的值,%c表示字符型
printf("I am %s\n", isMarried ? "married" : "single"); //打印isMarried变量的值,%s表示字符串型
- 在使用变量时,需要注意其数据类型,例如使用
%d
打印整型变量
,使用%.2f
打印浮点型变量
,使用%c
打印字符型变量
,使用%s
打印字符串型变量
。
以上就是C语言变量中的所有注意事项了!
📑 常量
💡 概念
-
C语言
常量
是指在程序中固定不变的值
,它们在程序执行期间不会发生变化。常量可以是数字
、字符
或字符串
等,常量的值在程序编译时就已经确定
。 -
C语言中的常量有以下几种类型:
整型常量
:整型常量是指整数常量
,可以是十进制
、八进制
或十六进制
。例如:
int a = 10; // 十进制整型常量
int b = 012; // 八进制整型常量,等价于10
int c = 0xA; // 十六进制整型常量,等价于10
实型常量
:实型常量是指浮点数常量
,可以是小数
或指数
形式。例如:
float a = 3.14; // 小数形式实型常量
float b = 3.14e-2; // 指数形式实型常量,等价于0.0314
字符常量
:字符常量是指单个字符
,用单引号
括起来。例如:
char a = 'A'; // 字符常量
字符串常量
:字符串常量是指由多个字符
组成的字符串,用双引号
括起来。例如:
char *str = "Hello, world!"; // 字符串常量
符号常量
:符号常量是指在程序中定义的不变量
,用#define
指令定义。例如:
#define PI 3.1415926 // 定义符号常量PI
💡 规则
- 常量的
声明
:常量在使用前
需要进行声明
,可以使用const
关键字进行声明。例如:
const int a = 10; // 声明一个整型常量a
-
常量的
命名规则
:常量的命名规则与变量相同
,由字母、数字和下划线
组成,以字母或下划线开头
。 -
符号常量的定义:符号常量可以使用
#define
指令进行定义。例如:
#define PI 3.1415926 // 定义符号常量PI
- 常量的使用:常量在程序中可以像
变量一样使用
,但是不能重新赋值
。例如:
const int a = 10;
int b = a + 5; // 可以使用常量a进行计算
a = 20; // 不能重新赋值常量a
以上是C语言常量的概念和代码规则及其解释。常量在程序中起到了固定不变的作用
,可以提高程序的可读性
和可维护性
。
📑 数据类型
💡 概念
- C语言提供了
多种数据类型
,包括整型
、浮点型
、字符型
、指针型
等。不同的数据类型占用不同的内存空间
,可以存储不同
的数据范围
和精度
。
下面带大家逐一认识以上数据类型吧!
🏷️ 整型
💡 概念
- 在C语言中,
整型
是一种基本的数据类型,用于存储整数
。整型变量可以存储不同的整数值,包括正整数
、负整数
和零
。C语言中的整型变量可以分为以下几种:
类型 | 解释 |
---|---|
char | 用于存储字符,占用一个字节,取值范围为-128 ~ 127或0 ~ 255 |
int | 用于存储整数,占用4个字节,取值范围为-2147483648 ~ 2147483647或0 ~ 4294967295 |
short | 用于存储短整数,占用2个字节,取值范围为-32768 ~ 32767或0 ~ 65535 |
long | 用于存储长整数,占用8个字节,取值范围为-9223372036854775808 ~ 9223372036854775807或0 ~ 18446744073709551615 |
💡 规则
- 整型变量在
使用前必须声明
,声明时需要指定变量的类型
。
int x; // 声明整型变量x
- 变量的命名应该具有
描述性
,能够清晰地表达变量的含义。变量名只能由字母、数字和下划线
组成,不能以数字开头
,长度应该控制在一定范围
内。
int age; // 声明一个描述年龄的整型变量
int _count; // 声明一个计数器,变量名以下划线开头
- 变量的赋值可以在
声明时初始化
,也可以在后面的程序中赋值
。
int x = 10; // 声明整型变量x并初始化为10
x = 20; // 给变量x赋值为20
- 整型变量可以进行
算术运算
,包括加
、减
、乘
、除
等。
int x = 10, y = 20;
int z = x + y; // z的值为30
- 在
输出整型变量
时,需要使用%d
格式化符号。
int x = 10;
printf("x的值为:%d\n", x); // 输出x的值为10
整型变量是C语言中常用的数据类型
之一,掌握好整型变量的概念和代码规则,可以帮助我们编写出正确
、高效
、易读
的程序。
🏷️ 浮点型
💡 概念
- 在C语言中,
浮点型
是一种基本的数据类型,用于存储实数
,即带有小数点的数值
。浮点型变量可以存储不同的实数值,包括正数
、负数
和零
。C语言中的浮点型变量可以分为以下两种:
类型 | 解释 |
---|---|
float | 用于存储单精度浮点数,占用4个字节,取值范围为3.4E-38 ~ 3.4E+38 |
double | 用于存储双精度浮点数,占用8个字节,取值范围为1.7E-308 ~ 1.7E+308 |
💡 规则
- 浮点型变量在
使用前必须声明
,声明时需要指定变量的类型
。
float x; // 声明单精度浮点型变量x
double y; // 声明双精度浮点型变量y
- 变量的命名应该具有
描述性
,能够清晰地表达变量的含义。变量名只能由字母、数字和下划线
组成,不能以数字开头
,长度应该控制在一定范围
内。
float height; // 声明一个描述身高的单精度浮点型变量
double weight; // 声明一个描述体重的双精度浮点型变量
- 变量的赋值可以在
声明时初始化
,也可以在后面的程序中赋值
。
float x = 3.14; // 声明单精度浮点型变量x并初始化为3.14
x = 2.5; // 给变量x赋值为2.5
double y = 1.23; // 声明双精度浮点型变量y并初始化为1.23
y = 4.56; // 给变量y赋值为4.56
- 浮点型变量可以进行
算术运算
,包括加
、减
、乘
、除
等。
float x = 3.14, y = 2.5;
float z = x + y; // z的值为5.64
- 在
输出浮点型变量
时,需要使用%f
或%lf
格式化符号,分别对应单精度浮点型
和双精度浮点型
。
float x = 3.14;
double y = 1.23;
printf("x的值为:%f\n", x); // 输出x的值为3.140000
printf("y的值为:%lf\n", y); // 输出y的值为1.230000
浮点型变量是C语言中常用的数据类型
之一,掌握好浮点型变量的概念和代码规则,可以帮助我们编写出正确
、高效
、易读
的程序。
🏷️ 字符型
💡 概念
- 在C语言中,
字符型
是一种基本的数据类型,用于存储单个字符
。字符型变量可以存储不同的字符,包括字母
、数字
、符号
和控制字符
等。
类型 | 解释 |
---|---|
char | 占用一个字节,取值范围为-128 ~ 127或0 ~ 255 |
💡 规则
- 字符型变量在
使用前必须声明
,声明时需要指定变量的类型
。
char ch; // 声明字符型变量ch
- 变量的命名应该具有
描述性
,能够清晰地表达变量的含义。变量名只能由字母、数字和下划线
组成,不能以数字开头
,长度应该控制在一定范围
内。
char first_name; // 声明一个表示名字的字符型变量
char _ch; // 声明一个表示字符的变量,变量名以下划线开头
- 变量的赋值可以在
声明时初始化
,也可以在后面的程序中赋值
。
char ch = 'A'; // 声明字符型变量ch并初始化为'A'
ch = 'B'; // 给变量ch赋值为'B'
- 字符型变量可以进行
算术运算
,包括加
、减
等。在计算时,实际上是将字符的ASCII
码进行运算。
char ch = 'A';
ch = ch + 1; // ch的值为'B'
- 在
输出字符型变量
时,需要使用%c
格式化符号。
char ch = 'A';
printf("ch的值为:%c\n", ch); // 输出ch的值为'A'
字符型变量是C语言中常用的数据类型
之一,掌握好字符型变量的概念和代码规则,可以帮助我们编写出正确
、高效
、易读
的程序。
🏷️ 指针型
💡 概念
- C语言指针是一种变量类型,它
存储
了另一个变量的内存地址
。指针变量包含了一个内存地址
,可以通过该地址访问存储在该地址上的变量的值
。
💡 规则
- 指针变量的声明需要使用“
*
”符号来标识该变量是一个指针类型
。例如:
int *p;
-
这个声明语句表示
p
是一个指向int类型
的指针变量
。它可以指向任何一个int
类型的变量。 -
指针变量
的赋值
需要使用“&
”符号来获取变量的地址
。例如:
int a = 10;
int *p;
p = &a;
-
这个代码段中,
p
指向了变量a的地址
。 -
指针变量的
解引用
需要使用“*
”符号来获取指针变量所指向的变量的值
。例如:
int a = 10;
int *p;
p = &a;
printf("%d", *p);
-
这个代码段中,
*p
表示p
所指向的变量的值
,即输出10
。 -
指针变量还可以用于
动态内存分配
和数组
操作等高级功能。 -
在使用指针变量时,需要注意
指针变量
的值不能为NULL
,否则会导致程序崩溃
。同时,指针变量的操作需要谨慎,否则可能会导致内存泄漏
和程序崩溃
等问题。 -
指针变量的初始化:指针变量在声明时,
如果没有初始化
,则默认值为NULL
。可以通过将指针变量赋值为0
或者NULL
来显式
地将其初始化为NULL
。
int *p = NULL; // 将指针变量p初始化为NULL
- 指针变量的赋值:可以将一个
指针变量赋值给另一个指针变量
,这样两个指针变量将指向同一个地址
。同时,可以将指针变量赋值为NULL或者0
,表示指向空地址
。
int a = 10;
int *p1 = &a; // 将p1指向a的地址
int *p2 = p1; // 将p2指向p1所指向的地址,即a的地址
int *p3 = NULL; // 将p3赋值为NULL,表示指向空地址
- 指针变量的比较:可以使用关系运算符(
==
、!=
、>
、<
、>=
、<=
)来比较两个指针变量的值
。如果两个指针变量指向同一个地址
,则它们的值相等
。如果指针变量指向不同的地址
,则它们的值不相等
。
int a = 10;
int *p1 = &a;
int *p2 = &a;
if (p1 == p2) { // 指针变量p1和p2指向同一个地址,值相等printf("p1 and p2 point to the same address.\n");
}
- 指针变量的递增和递减:可以使用
递增(++)
和递减(--)
运算符来增加或减少指针变量的值
。递增和递减操作会使指针变量指向下一个
或上一个地址
。
int a[5] = {1, 2, 3, 4, 5};
int *p = a; // 将指针变量p指向数组a的第一个元素
for (int i = 0; i < 5; i++) {printf("%d ", *p); // 输出指针变量所指向的元素的值p++; // 将指针变量p指向下一个元素
}
- 指针变量的数组操作:可以将
指针变量
视为数组名
来进行数组操作。例如,可以使用指针变量访问数组元素
,也可以使用指针变量作为函数的参数
来传递数组。
int a[5] = {1, 2, 3, 4, 5};
int *p = a; // 将指针变量p指向数组a的第一个元素
int sum = 0;
for (int i = 0; i < 5; i++) {sum += *(p + i); // 使用指针变量访问数组元素并求和
}
printf("sum = %d\n", sum);
- 动态内存分配:可以使用
指针变量
来进行动态内存分配
。可以使用malloc
函数来动态分配内存
,使用free
函数来释放分配的内存
。
int *p = (int *)malloc(sizeof(int) * 5); // 动态分配5个int类型的内存空间
if (p == NULL) { // 判断内存是否分配成功printf("memory allocation failed.\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)); // 输出动态分配的内存空间的值
}
free(p); // 释放动态分配的内存空间
以上是一些C语言指针变量的代码规则和解释。指针变量是C语言中非常重要
的概念,掌握指针变量的使用方法可以让我们更加灵活
地编写程序。
📑 数据类型转换
💡 概念
- C语言
数据类型转换
是指将一个数据类型转换为另一个数据类型
的过程。在C语言中,数据类型转换有两种:隐式类型转换
和显式类型转换
。
🏷️ 隐式类型转换
💡 概念
- 隐式类型转换是指
在表达式中
,编译器自动
将一种数据类型转换为另一种数据类型
的过程。例如,当一个表达式中包含不同类型的操作数时,编译器会自动将其中的一种数据类型转换为另一种数据类型,以便进行运算。
💡 规则
- 如果两个操作数中有一个是
double类型
,另一个操作数会被转换为double类型
。 - 如果两个操作数中有一个是
float类型
,另一个操作数会被转换为float类型
。 - 如果两个操作数中有一个是
long类型
,另一个操作数会被转换为long类型
。 - 如果两个操作数中有一个是
unsigned int类型
,另一个操作数会被转换为unsigned int类型
。 - 如果两个操作数中有一个是
int类型
,另一个操作数会被转换为int类型
。
例如:
int a = 10;
float b = 3.14;
float c = a + b; // a会被自动转换为float类型,以便与b进行运算
🏷️ 显式类型转换
- 显式类型转换是指在程序中
明确地指定
要将一个数据类型转换为另一个数据类型
的过程。显式类型转换可以通过强制类型转换
来实现,强制类型转换的语法如下:
(type)expression
其中,type
表示要转换的数据类型,expression
表示要转换的表达式。
💡 规则
- 可以将
一种数据类型转换为另一种数据类型
。 - 可以将
一个较小的数据类型转换为一个较大的数据类型
,但是会导致精度损失
。 - 不可以将
一个较大的数据类型转换为一个较小的数据类型
,否则会导致数据溢出
。
例如:
int a = 10;
float b = 3.14;
int c = (int)b; // 将float类型的b转换为int类型的c
以上是C语言数据类型转换的概念和代码规则及其解释。在进行数据类型转换时,需要根据实际情况
选择隐式类型转换或者显式类型转换,并且需要注意
转换后可能导致的精度损失
和数据溢出
等问题。
下一篇:运算符和表达式
🎀小结
⚡恭喜你的内功又双叒叕得到了提高!!!🔋
🔚以上就是C语言变量和数据类型
的全部知识了~
🤗感谢大家的阅读~
📬后续还会继续更新💓,欢迎持续关注哟~📌
💫如果有错误❌,欢迎指正呀💫
✨如果觉得收获满满,可以点点赞👍支持一下哟~✨
相关文章:

【C语言】基础语法1:变量和数据类型
下一篇:运算符和表达式 ❤️🔥前情提要❤️🔥 欢迎来到C语言基本语法教程 在本专栏结束后会将所有内容整理成思维导图(结束换链接)并免费提供给大家学习,希望大家纠错指正。本专栏将以基础出发…...

linux安装和使用jekins
Jenkins详细安装配置部署--超详细_jenkins安装部署_宝贝富贵猪的博客-CSDN博客 1.安装JDK 2.获取安装包 下载页面:https://jenkins.io/zh/download/ 或者Index of /jenkins/redhat/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 3.安装Jenkins sud…...
驼峰式匹配
问题: 如果我们可以将小写字母插入模式串 pattern 得到待查询项 query,那么待查询项与给定模式串匹配。(我们可以在任何位置插入每个字符,也可以插入 0 个字符。) 给定待查询列表 queries,和模式串 patte…...
第三十七章 立方体贴图总结
立方体贴图:将多个纹理组合起来映射到一张纹理上的一种纹理类型。 一个立方体贴图时包含了6个2D纹理的纹理,每个2D纹理都组成了立方体的一个面,相当于是一个有纹理的立方体。 创建立方体贴图: 首先需要生成一个纹理,将其绑定到纹理目标上,再做其他纹理操作。补充:绑定到…...

哈希(C++)
哈希 unordered系列关联式容器unordered_map介绍 底层结构哈希概念哈希冲突哈希函数哈希冲突解决方式闭散列开散列 模拟实现哈希表的改造 哈希应用位图概念实现 布隆过滤器提出概念 unordered系列关联式容器 在C98中,STL提供了底层为红黑树结构的一系列关联式容器&…...

Spring MVC 的调用(12)
目录 SpringMVC流程 源码分析 第一步:用户发起请求到前端控制器(DispatcherServlet) 第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或者…...
死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] args) { System.out.println("sleep .."); try { Thread.sleep(10000000); } catch (InterruptedException e) { e.printStackTrace(); } } } java -…...

信号完整性分析:关于传输线的三十个问题解答(三)
21.FR4 中 50 欧姆传输线的单位长度电感是多少?如果阻抗加倍怎么办?(What is the inductance per length of a 50-Ohm transmission line in FR4? What if the impedance doubles?) FR4 中的所有 50 欧姆传输线的单位长度电感约…...
Java基础:Stream流常用方法
获取Stream流的方式 java.util.stream.Stream 是Java 8新加入的流接口。(并不是一个函数式接口) 获取一个流非常简单,有以下几种常用的方式: 所有 Collection 集合都可通过 stream 默认方法获取流(顺序流)…...

ImageNet使用方法(细节)自用!
学习记录,自用。 1. 下载数据集 点击以下链接下载种子文件,然后使用迅雷进行下载,仅下载勾选的文件即可。 https://hyper.ai/datasets/4889/c107755f6de25ba43c190f37dd0168dbd1c0877e 2. 解压 找到下载好的ILSVRC2012_img_train.tar 和…...
C/C++外观模式解析:简化复杂子系统的高效方法
C外观模式揭秘:简化复杂子系统的高效方法 引言设计模式的重要性外观模式简介与应用场景外观模式在现代软件设计中的地位与价值 外观模式基本概念外观模式的定义与核心思想提供简单接口隐藏复杂子系统设计原则与外观模式的关系外观模式实现外观模式的UML图 外观模式的…...

追梦之旅【数据结构篇】——详解小白如何使用C语言实现堆数据结构
详解小白如何使用C语言实现堆数据结构 “痛”撕堆排序~😎 前言🙌什么是堆?堆的概念及结构 堆的性质:堆的实现堆向下调整算法画图分析:堆向下调整算法源代码分享:向下调整建小堆向下调整建大堆 堆向上调整算…...

cocoscreator性能优化4-Sprite颜色数据去除
前言 Sprite是游戏内容的一个基本组成元素,包括ui、道具、立绘等各种地方都会用到。大部分情况下美术会帮我们调好图片颜色,我们只要把图片直接放到游戏里就行了。Sprite默认的渲染顶点数据中包含了颜色数据,由于我们并不需要去修改颜色&…...
系统接口幂等性设计探究
前言: 刚开始工作的时候写了一个带UI页面的工具,需要设计登录功能,登录功能也很简单,输入用户名密码点击登录,触发后台查询并比对密码,如果登录成功则返回消息给前端,前端把消息弹出提示一下。…...

C learning_7
目录 1.for循环 1.虽然while循环和for循环本质上都可以实现循环,但是它们在使用方法和场合上还是有一些区别的。 2.while循环中存在循环的三个必须条件,但是由于风格的问题使得三个部分很可能偏离较远,这样 查找修改就不够集中和方便。所以…...
PageRank算法介绍
互联网上有数百亿个网页,可以分为这么几类:不含有用信息的,比如垃圾邮件;少数人比较感兴趣的,但范围不是很广的,比如个人博客、婚礼公告或家庭像册;很多人感兴趣的并且十分有用的,比…...

springboot+vue职称评审管理系统(源码+文档)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的职称评审管理系统。项目源码请联系风歌,文末附上联系信息 。 目前有各类成品java毕设,需要请看文末联系方式 …...

腾讯云4核8G轻量服务器12M支持多少访客同时在线?并发数怎么算?
腾讯云轻量4核8G12M轻量应用服务器支持多少人同时在线?通用型-4核8G-180G-2000G,2000GB月流量,系统盘为180GB SSD盘,12M公网带宽,下载速度峰值为1536KB/s,即1.5M/秒,假设网站内页平均大小为60KB…...

图片英文翻译成中文转换器-中文翻译英文软件
您正在准备一份重要的英文资料或文件,但是您还不是很熟练地掌握英文,需要翻译才能完成您的任务吗?哪个软件能够免费把英文文档翻译成中文?让我们带您了解如何使用我们的翻译软件来免费翻译英文文档为中文。 我们的翻译软件是一款功…...

月薪10k和40k的程序员差距有多大?
程序员的薪资一直是大家关注的焦点,相较于其他行业,程序员的高薪也是有目共睹的,而不同等级的程序员处理问题的方式与他们的薪资直接挂钩。 接下来就一起看一下月薪10k、20k、30k、40k的程序员面对问题都是怎么处理的吧! 场景一 …...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
蓝桥杯 冶炼金属
原题目链接 🔧 冶炼金属转换率推测题解 📜 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V,是一个正整数,表示每 V V V 个普通金属 O O O 可以冶炼出 …...