当前位置: 首页 > article >正文

【C语言】第一期——数据类型变量常量

目录

1 字面量

2 整数类型

2.1 整数类型的取值范围 

2.1.1 sizeof 运算符 

2.2 GB、MB、KB、B之间的关系

2.3 定义整数类型的变量并打印

2.4 整数类型代码演示

3 浮点类型

3.1 浮点类型的取值范围

3.2 定义浮点类型变量并打印

3.3 保留2位小数点

4 char字符型

4.1 char类型的取值范围

4.2 ASCII码表(了解)

4.3 C语言中的字符串

4.3.1 %s  用户字符串的输出

5 C语言中的变量和常量

5.1 变量

5.1.1 一次定义多个变量

5.2 常量

5.2.1 字符常量 (转义字符)

5.2.2 const 和 #define 定义常量(重要)

5.2.2.1 #define 预处理器定义常量

5.2.2.2 const 关键字定义常量

5.2.2.3 #define 与 const 区别

6 C语言中标识符的命名规则以及注释

6.1 标识符的命名规则

6.2 C语言关键字

6.3 C语言的注释

7 C语言中printf与数据类型占位符


C 中的类型可分为以下几种:

类型名称描述
基本数据类型它们是算术类型,包括整型(int)、字符型(char)、浮点型(float)和双精度浮点型(double)。
枚举类型它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。
void 类型类型说明符 void 表示没有值的数据类型,通常用于函数返回值。
派生类型包括数组类型、指针类型和结构体类型。

这里我们首先给大家讲解一下基本数据类型,后期教程会详细讲解一下其他类型,在全部更新完后,会在此页面标记相应期数


1 字面量

在C语言中,字面量是一种不可变的数据类型,通过字面量可以存储数字、字符、布尔值和其他特殊值,如文件路径、日期和时间等 。

C语言中字面量主要分为下面几种:

❗注意:字符型是单引号,字符串是双引号

类型示例格式符(占位)
整型100、314、0、-200%d
浮点型3.14、12.2、0.618、-1.7%f
字符型'a'、'1'、'='、'?'、'#'%c
字符串"124"、"hello"、"www.qq.com"%s

2 整数类型

2.1 整数类型的取值范围 

下表列出了关于标准整数类型的存储大小和值范围的细节:

类型存储大小值范围
char1 字节-128 到 127 或 0 到 255
unsigned char1 字节0 到 255
signed char1 字节-128 到 127
int4 字节-2,147,483,648 到 2,147,483,647
unsigned int4 字节0 到 4,294,967,295
short2 字节-32,768 到 32,767
unsigned short2 字节0 到 65,535
long4 字节-2,147,483,648 到 2,147,483,647
unsigned long4 字节0 到 4,294,967,295

❗注意:char 类型是否有符号取决于编译器和系统。

有些编译器将 char 视为 signed char,而有些则将其视为 unsigned char。

如果编译器将 char 视为 signed char:其取值范围就是 -128 到 127。
如果编译器将 char 视为 unsigned char:其取值范围就是 0 到 255。

各种类型的存储大小与系统位数有关,但目前通用的以64位系统为主。


2.1.1 sizeof 运算符 

为了得到某个类型或某个变量在特定平台上的准确大小,可以使用 sizeof 运算符得到对象类型的存储字节大小。

表达式:sizeof(type)

下面的实例演示了获取 int 类型的大小: 

#include <stdio.h>int main(){printf("int 存储大小 : %d 个字节\n", sizeof(int));return 0;}

2.2 GB、MB、KB、B之间的关系

单位名称英文全称与下一级单位换算关系
比特bit-
字节byte1B = 8 bit
千字节Kilobyte1KB = 1024B
兆字节Megabyte1MB = 1024KB
吉字节Gigabyte1GB = 1024MB

1bit=8位     00000 00000 ~ 1111 11111


2.3 定义整数类型的变量并打印

 变量:顾名思义就是可以改变的量。变量本质上是一块有名字的内存空间,用来存放数据。

C语言中变量可以定义的时候赋值,也可以先定义后赋值

下面定义了一个int类型的变量 a,并且给a赋值了200

 #include<stdio.h>int main(){int a = 200;printf("%d\n", a);return 0;}

下面首先定义了一个int类型的变量 a,然后给a赋值了200

#include <stdio.h>int main(){int a;a = 200;printf("%d\n", a);return 0;}

2.4 整数类型代码演示

#include <stdio.h> int main() {int a = 65;printf("a的值:%d\n", a);short b = 2;printf("b的值:%d\n", b);long c = 12345;printf("c的值:%d\n", c)unsigned short s = 12;printf("int 占用%d个字节\n", sizeof(int));printf("short 占用%d个字节\n", sizeof(short));printf("long 占用%d个字节\n", sizeof(long));printf("s的值:%d\n", s);return 0;}

输出结果:

        a的值:65 
        b的值:2 
        c的值:12345 
        int 占用4个字节
        short 占用2个字节
        long 占用4个字节
        s的值:12


3 浮点类型

3.1 浮点类型的取值范围

 下表列出了关于标准浮点类型的存储大小、值范围和精度的细节

类型存储大小值范围精度
float4 字节1.2E-38 到 3.4E+386 位有效位
double8 字节2.3E-308 到 1.7E+30815 位有效位
long double16 字节3.4E-4932 到 1.1E+493219 位有效位

头文件 float.h 定义了宏,在程序中可以使用这些值和其他有关实数二进制表示的细节。

下面的实例将 输出浮点类型占用的存储空间以及它的范围值:

3.4E+38表示的意思是 3.4*10^38


3.2 定义浮点类型变量并打印

示例1:通过float定义一个浮点数 

#include <stdio.h>int main(){float f = 3.14f;printf("%f\n", f);return 0;}

注意: float定义浮点数的时候,在数值后面需要加上f, 如果不加F,系统会默认把赋值的数字当作 double类型处理 ,然后在把这个double类型的值赋给float类型,这样就会出现精度丢失。

示例2:通过double定义一个浮点数

#include<stdio.h>int main(){double d = 3.14;printf("%lf\n", d);return 0;}

示例3:float 以及double占用的字节数

#include <stdio.h>int main(){printf("float 存储最大字节数 : %d \n", sizeof(float));printf("double 存储最大字节数 : %d \n", sizeof(double));return 0;}

输出结果:

float 存储最大字节数 : 4

double 存储最大字节数 : 8


3.3 保留2位小数点

#include <stdio.h>int main(){float a = 3.1415f;printf("%.2f", a);return 0;}
#include <stdio.h>int main(){double d = 3.14135;printf("%.2lf\n", d);return 0;}

输出结果:

3.14


 4 char字符型

C语言中,字符型只有一种:字符型(char)。char占用1个字节

C 语言中,char 类型既可以当作整数类型使用,也可以当作字符类型使用

4.1 char类型的取值范围

下表列出了字符型的存储大小和值范围的细节:

存储大小类型值范围
1 字节char-128 到 127 或 0 到 255
1 字节unsigned char0 到 255

如果想要明确指定有符号或无符号的字符类型,可以分别使用 signed char 和 unsigned char,这样在不同编译器下取值范围就确定了。

char字符类型数据在printf函数中一般采用c%格式进行输出

#include<stdio.h>int main(){char c = 'A';printf("%c\n", c);  return 0;}

分析:

1.执行第 4 行程序时,先在内存中开 1字节空间,并标记为c,然后把字符A对应的ASCII码65,存储在c 标记的内存空间中。

2.执行第5行程序时,先读取变量c对应内存空间中的数据 65,然后替换 printf中的c,由于%c表示字符格式,因此不能直接输出整数65,而是输出65对应的字符A。

字符在内存中是按照其对应的 ASCII码进行存储,而ASCII码本质上也是整数。因此,字符型可以看作是整型的一种,当然也就可以按照 %d格式输出。

下面通过程序了解一下:

#include <stdio.h>int main(){char c = 'A';printf("%c\n", c);printf("%d\n", c);return 0;}

输出结果:

A

65


4.2 ASCII码表(了解)

编码字符编码字符编码字符编码字符
0NUL32Space64@96`
1SOH33!65A97a
2STX34"66B98b
3ETX35#67C99c
4EOT36$68D100d
5ENQ37%69E101e
6ACK38&70F102f
7BEL39'71G103g
8BS40(72H104h
9TAB41)73I105i
10LF42*74J106j
11VT43+75K107k
12FF44,76L108l
13CR45-77M109m
14SO46.78N110n
15SI47/79O111o
16DLE48080P112p
17DC149181Q113q
18DC250282R114r
19DC351383S115s
20DC452484T116t
21NAK53585U117u
22SYN54686V118v
23ETB55787W119w
24CAN56888X120x
25EM57989Y121y
26SUB58:90Z122z
27ESC59;91[123{
28FS60<92|124
29GS61=93]125}
30RS62>94^126~
31US63?95_127DEL

4.3 C语言中的字符串

在 C 语言中是没有字符串类型的,所谓的字符串本质上是由单个字符组成。例如:" USER_A001", 可以看做是由字符 'U'、'S'、'E'、'R'、'_'、'A'、'0'、'0'、'1'组成

#include <stdio.h>int main(){printf("我的名字是:%s", "USER_A001");return 0;}

4.3.1 %s  用户字符串的输出

在 C 语言中字符串实际上是使用空字符 \0 结尾的一维字符数组。

因此,\0 是用于标记字符串的结束。

#include <stdio.h>int main(){char name[10] = { 'U', 'S', 'E', 'R', '_', 'A', '0', '0', '1', '\0'};printf("我的姓名是:%s", name);return 0;}

5 C语言中的变量和常量

5.1 变量

变量是在程序运行过程中其值可以改变的量。

上文中的 char int float double定义的数据都是变量。

#include <stdio.h> 
int main() {//整型int a;    //声明a = 123;    //初始化赋值a = 456;    //修改值int b = 123;    //声明完直接赋值//浮点型float c;c = 3.14f;c = 3.14159f;float c = 3.14f;return 0;}

5.1.1 一次定义多个变量

#include <stdio.h>int main(){int a = 100, b = 200; // 定义int 变量 a、 b 且赋值int c = 300;          // 定义变量 c 且赋值int d = 400;          printf("a=%d\n", a);printf("b=%d\n", b);printf("c=%d\n", c);printf("d=%d\n", d);return 0;}

5.2 常量

常量是指在程序执行过程中其值不能改变的量。

在 C语言中支持整型常量、浮点型常量、字符型常量和字符串型常量。

上文讲的字面量就属于常量

5.2.1 字符常量 (转义字符)

在 C 中,有一些特定的字符,当它们前面有反斜杠时,它们就具有特殊的含义,被用来表示如换行符 (\n)或制表符(\t)等。

转义序列1含义1转义序列2含义2
\\\字符\''字符
\""字符\??字符
\a警报铃声\b退格键
\f换页符\n换行符
\r回车\t水平制表符
\v垂直制表符\ooo一到三位的八进制数
\xhh...一个或多个数字的十六进制数
#include <stdio.h> int main() {printf("C:\Windows\System32\n"); //错误写法printf("C:\\Windows\\System32"); // 正确写法return 0;}

 5.2.2 const 和 #define 定义常量(重要)

 在 C 中,有两种简单的定义常量的方式:
1. 使用 #define 预处理器: #define 可以在程序中定义一个常量,它在编译时会被替换为其对应的值。

5.2.2.1 #define 预处理器定义常量

在C语言中,#define命令可以用于创建宏定义。宏定义是在编译时直接替换源文件中的字符串,而不 是在运行时替换它们 。

下面是使用 #define 预处理器定义常量的形式:

❗注意:宏定义后边不要加分号

#define 常量名 常量值

下面的代码定义了一个名为 PI 的常量:

在程序中使用该常量时,编译器会将所有的 PI 替换为 3.14159

#define PI 3.14159

实例: 

 #include <stdio.h>#define LENGTH 10   #define WIDTH  5#define NEWLINE '\n'int main(){int area;  area = LENGTH * WIDTH;printf("value of area : %d", area);printf("%c", NEWLINE);return 0;}

运行结果:value of area : 50


5.2.2.2 const 关键字定义常量

可以使用 const 前缀声明指定类型的常量,如下所示:

❗注意,把常量定义为大写字母形式,是一个很好的编程习惯。

const 数据类型 常量名 = 常量值;

下面的代码定义了一个名为MAX_VALUE的常量:

在程序中使用该常量时,其值将始终为100,并且不能被修改。

const int MAX_VALUE = 100;

❗注意:const 声明常量要在一个语句内完成

错误写法:

const int var;


const int var;
var=5;

正确写法:
const int var = 5;

实例: 

 #include <stdio.h>int main() {const int  LENGTH = 10;const int  WIDTH  = 5;const char NEWLINE = '\n';int area;area = LENGTH * WIDTH;printf("value of area : %d", area);printf("%c", NEWLINE)return 0;}

运行结果:value of area : 50


5.2.2.3 #define 与 const 区别

#define 与 const 这两种方式都可以用来定义常量,选择哪种方式取决于具体的需求和编程习惯。通常 情况下,建议使用 const 关键字来定义常量,因为它具有类型检查和作用域的优势,而 #define 仅进 行简单的文本替换,可能会导致一些意外的问题。

#define 预处理指令和 const 关键字在定义常量时有一些区别:

替换机制: #define 是进行简单的文本替换,而 const 是声明一个具有类型的常量。 #define 定义的常量在编译时会被直接替换为其对应的值,而 const 定义的常量在程序运行时会分配内 存,并且具有类型信息。

类型检查: #define 不进行类型检查,因为它只是进行简单的文本替换。而 const 定义的常量 具有类型信息,编译器可以对其进行类型检查。这可以帮助捕获一些潜在的类型错误。

作用域: #define 定义的常量没有作用域限制,它在定义之后的整个代码中都有效。而const定义的常量具有块级作用域,只在其定义所在的作用域内有效。

调试和符号表:使用 #define 定义的常量在符号表中不会有相应的条目,因为它只是进行文本替 换。而使用 const 定义的常量会在符号表中有相应的条目,有助于调试和可读性。


6 C语言中标识符的命名规则以及注释

6.1 标识符的命名规则

1) 只能由26个英文字母、数字或下划线3种字符组成。
2) 第1个字符只能是字母或下划线。
3) 大小写敏感的。
4) 不能是关键字(关键词参考下面介绍的《C语言关键字》)。
合法标识符:Abc、a1、_max、day
非法标识符:1a、%abc、#33、a<b、1_2_5、in


6.2 C语言关键字

在c语言里面所谓的关键字,就是在我们编写代码时,颜色不一样的字。

而这些关键字,我们可以大致将其分为几类:存储类型、数据类型、控制语句、其他关键字。

类别关键字
存储类型auto、static、register、extern
数据类型int、short、long、char、float、double、signed、unsigned、struct、enum、union、void
控制语句if、else、switch、case、default、break、for、while、do、goto、continue
其他关键字const、sizeof、typedef、volatile、return

6.3 C语言的注释

/* 这是一个多行注释,
它将在编译时被自动忽略 
*/ 
int width = 20;  // 这是一个单号注释
int x = 10;  // 这是一个变量声明,它的值将被初始化为10     
double y = 3.14; // 这是一个浮点数赋值语句,它将被转换为一个双精度浮点数

7 C语言中printf与数据类型占位符

在上文中我们给大家介绍过printf,为了方便记忆我们列出了printf中常用的占位符

占位符类型说明
%dint以十进制输出整数,%i 是以前的用法
%ffloat输出单精度浮点数,可以指定精度,%2f 就是保留 2 位小数
%lfdouble输出双精度浮点数,也可以指定精度
%cchar也可以使用 % d 输出 char,此时输出的是字符的 ASCII 码
%s字符串输出字符串

❗注意:printf中数据类型一定不能用错,这涉及到数据在内存中表示格式的问题

另外,在printf 中也可以同时使用多个占位符,只要前后和参数的类型、个数能够对得上就行

例如:

 printf("name=%s, age=%d, height=%f", "itying", 18, 3.14);

补充:volatile关键字 

 在 C 中,volatile 关键字主要用于告诉编译器,被修饰的变量可能会以编译器未知的方式被修改,因此编译器在对该变量进行优化时需要特殊处理,不要对该变量的访问进行不必要的优化。

举例:

a += 1;

a += 2;

经过编译器优化后,会直接变成

a += 3;

有了关键字volatile,则会分步进行,不会进行合并优化

好处:嵌入式的每一个步骤可能都有相应的作用,而合并会导致过程或结果不同 

相关文章:

【C语言】第一期——数据类型变量常量

目录 1 字面量 2 整数类型 2.1 整数类型的取值范围 2.1.1 sizeof 运算符 2.2 GB、MB、KB、B之间的关系 2.3 定义整数类型的变量并打印 2.4 整数类型代码演示 3 浮点类型 3.1 浮点类型的取值范围 3.2 定义浮点类型变量并打印 3.3 保留2位小数点 4 char字符型 4.1…...

【c++】【Linux】【进程】线程终止/崩溃 会导致进程终止/崩溃 吗?

【c】【Linux】【进程】线程终止/崩溃 会导致进程终止/崩溃 吗&#xff1f; 1.线程终止会导致进程终止吗&#xff1f; 在操作系统中&#xff0c;线程是进程的基本执行单元&#xff0c;一个进程可以包含一个或多个线程。 当一个子线程终止时&#xff0c;进程并不会因此自动终…...

宝藏软件系列 篇一:My APK(Android)

文章目录 系列文章官方网站特色功能同类软件 系列文章 官方网站 My APK 官方版本是在 谷歌商店 中上架的。 官方下载地址&#xff1a;Google Play 商店页面。&#xff08;需要外网&#xff09; 2025.2最新版本的CSDN本地下载地址&#xff08;因为是Android App Bundle&…...

springcloud集成gateway

本篇文章只介绍gateway模块的搭建步骤&#xff0c;并无gateway详细介绍 gateway详解请查看&#xff1a;SpringCloudGateway官方文档详解 前置处理 父模块中已指定版本 不知道如何选择版本看这篇&#xff1a; 手把手教你梳理springcloud与springboot与springcloudalibaba的版本…...

pandas(13 Caveats Gotchas和SQL比较)

前面内容&#xff1a;pandas(12 IO工具和稀松数据) 目录 一、Caveats警告 & Gotchas预见 1.1 在Pandas中使用if/Truth语句 1.2 位运算布尔 1.3 isin操作 1.4 重新索引reindex和 loc&iloc 使用注意事项 1.5 loc和iloc 二、Python Pandas 与SQL的比较 2.1 数…...

Android的Activity生命周期知识点总结,详情

一. Activity生命周期 1.1 返回栈知识点 二. Activity状态 2.1 启动状态 2.2 运行状态 2.3 暂停状态 2.4 停止状态 2.5 销毁状态 三. Activity生存期 3.1 回调方法 3.2 生存期 四. 体验Activity的生命周期 五. Activity被回收办法 引言&#xff1a; 掌握Acti…...

基于Python的Flask微博话题舆情分析可视化系统

2024数据 ✅️标价源码 远程部署加 20 ✅️爬虫可用 有六月数据 ✅️修复bug不会突然打不开网页 系统稳定 系统的功能如下: 1.数据的爬取 2.用户的登录注册 3.热词统计&#xff0c;舆情统计 4.文章统计分析 5.发布地址统计 6.评论统计 7.情感分类统计 编程语言&#xff1a;py…...

【Python爬虫(1)】专栏开篇:夯实Python基础

【Python爬虫】专栏简介&#xff1a;本专栏是 Python 爬虫领域的集大成之作&#xff0c;共 100 章节。从 Python 基础语法、爬虫入门知识讲起&#xff0c;深入探讨反爬虫、多线程、分布式等进阶技术。以大量实例为支撑&#xff0c;覆盖网页、图片、音频等各类数据爬取&#xff…...

【油漆面积——线段树,扫描线,不用pushdown的特例,pushup兼有cal的性质】

题目 分析 不用pushdown是因为&#xff1a; 对于modify&#xff0c;操作是互逆过程&#xff0c;因此不会存在向下结算的pushdown过程 对于query&#xff0c;操作始终针对最上层的tr[1]&#xff0c;也不需要pushdown 对于pushdown&#xff0c;一则是怕不结算就标记&#xff0c;会…...

fps武器系统6:随机弹道

文章目录 设计随即弹道 思路连射时在一个范围内随机改变枪口旋转即可 实现改变枪口旋转改变旋转就是改变物体朝向即可随机&#xff1a;锥体随机 疑问旋转体与物体朝向(向量)间的关系为什么随即弹道调用两次 设计 随即弹道 思路 连射时在一个范围内随机改变枪口旋转即可 实现…...

深度学习(1)-简单神经网络示例

我们来看一个神经网络的具体实例&#xff1a;使用Python的Keras库来学习手写数字分类。在这个例子中&#xff0c;我们要解决的问题是&#xff0c;将手写数字的灰度图像&#xff08;28像素28像素&#xff09;划分到10个类别中&#xff08;从0到9&#xff09;​。我们将使用MNIST…...

硬件学习笔记--42 电磁兼容试验-6 传导差模电流干扰试验介绍

目录 电磁兼容试验-传导差模电流试验 1.试验目的 2.试验方法 3.判定依据及意义 电磁兼容试验-传导差模电流干扰试验 驻留时间是在规定频率下影响量施加的持续时间。被试设备&#xff08;EUT&#xff09;在经受扫频频带的电磁影响量或电磁干扰的情况下&#xff0c;在每个步进…...

Shader示例 6: 卡渲基础 - 描边 + 着色

0 、获取原神模型&#xff1a; 【游戏开发实战】下载原神模型&#xff0c;PMX转FBX&#xff0c;导入到Unity中&#xff0c;卡通渲染&#xff0c;绑定人形动画&#xff08;附Demo工程&#xff09;-CSDN博客 《原神》公测视频征集计划 一、描边pass&#xff1a;Outline 1. …...

Cherno C++ P55 宏

这篇文章我们讲一下C当中的宏。其实接触过大型项目的朋友可能都被诡异的宏折磨过。 宏是在预处理当中&#xff0c;通过文本替换的方式来实现一些操作&#xff0c;这样可以不用反复的输入代码&#xff0c;帮助我们实现自动化。至于预处理的过程&#xff0c;其实就是文本编辑&am…...

(20)从strlen到strtok:解码C语言字符函数的“生存指南1”

❤个人主页&#xff1a;折枝寄北的博客 ❤专栏位置&#xff1a;简单入手C语言专栏 目录 前言1. 求字符串长度函数1.1 strlen 2. 长度不受限制的字符串函数2.1 strcpy2.2 strcat2.3 strcmp 3. 长度受限制的字符串函数3.1 strncpy3.2 strncat3.3 strncmp 4. 字符串查找函数4.1 st…...

基于deepseek api和openweather 天气API实现Function Calling技术讲解

以下是一个结合DeepSeek API和OpenWeather API的完整Function Calling示例&#xff0c;包含意图识别、API调用和结果整合&#xff1a; import requests import json import os# 配置API密钥&#xff08;从环境变量获取&#xff09; DEEPSEEK_API_KEY os.getenv("DEEPSEE…...

Mongodb数据管理

Mongodb数据管理 1.登录数据库&#xff0c;查看默认的库 [rootdb51~]# mongo> show databases; admin 0.000GB config 0.000GB local 0.000GB> use admin switched to db admin > show tables system.version > admin库&#xff1a;admin 是 MongoDB 的管理…...

从短片到长片:王琦携《Mountain》续作迈向新高度

在王琦(Qi Wang)的带领下,广受关注的短片《Mountain》迎来了成长篇续作《Rite of the Mountain》。这一全新长片不仅是她从短片迈向长篇叙事的重要一步,更是一次大胆的艺术挑战。作为制片人的她,将继续以敏锐的视觉风格和深刻的叙事洞察,拓展《Mountain》所触及的情感深度,并构…...

DeepSeek应用——与PyCharm的配套使用

目录 一、配置方法 二、使用方法 三、注意事项 1、插件市场无continue插件 2、无结果返回&#xff0c;且在本地模型报错 记录自己学习应用DeepSeek的过程&#xff0c;使用的是自己电脑本地部署的私有化蒸馏模型...... &#xff08;举一反三&#xff0c;这个不单单是可以用…...

c#中“事件-event”的经典示例与理解

在C#编程语言中&#xff0c;事件&#xff08;Event&#xff09;是一个非常重要的概念&#xff0c;它提供了一种松耦合的方式&#xff0c;让对象间能够通知彼此&#xff0c;而无需直接联系。事件的使用可以让我们的代码更加灵活、可扩展且易于维护。 事件可以视作委托的实例&…...

如何画产品功能图、结构图

功能图的类型 常见的功能图包括数据流图、用例图、活动图、状态图、类图、组件图、部署图等等&#xff0c;不同的应用场景和目标下&#xff0c;需要确定不同的功能图类型。 数据流图 用例图 状态图 类图 组件图 组件图是由软件系统、组件和组件之间的关系组成的图形&#xf…...

标准输入输出流,面向对象,构造函数

标准输入输出流 为什么不直接用printf和scanf? 不能输入/输出C新增的内容 std C的一些标识符&#xff0c;都是定义在std这个名字空间下面cout 是什么&#xff1f; 1.是一个ostream对象 output stream:输出流使用 <<&#xff1a;输出流运算符 作用&#xff1a;将右边…...

Vue2 中使用 UniApp 时,生命周期钩子函数总结

在 Vue2 中使用 UniApp 时&#xff0c;生命周期钩子函数是一个重要的概念。它允许开发者在特定的时间点运行代码&#xff0c;管理组件的生命周期。以下是 Vue2 中 UniApp 常用的生命周期钩子函数总结&#xff1a; 1. beforeCreate 说明: 组件实例刚被创建&#xff0c;此时数据…...

QEMU源码全解析 —— 内存虚拟化(12)

接前一篇文章:QEMU源码全解析 —— 内存虚拟化(11) 本文内容参考: 《趣谈Linux操作系统》 —— 刘超,极客时间 《QEMU/KVM》源码解析与应用 —— 李强,机械工业出版社 QEMU内存管理模型...

如何将ubuntu下的一个目录,保存目录结构为一个git仓库并上传

目录 1. 初始化本地Git仓库 2. 添加文件到仓库 3. 提交更改 4. 创建并关联远程仓库 5. 推送代码到远程仓库 完整流程总结 要将Ubuntu下的一个目录&#xff08;例如rpc&#xff09;保存为一个Git仓库并上传到远程仓库&#xff0c;您可以遵循以下步骤&#xff1a; 1. 初始…...

深度学习中通道数的理解

目录 一、通道&#xff08;Channels&#xff09;的作用 1. 表示输入数据的多样性 2. 提取多层次特征 3. 信息融合与交互 4. 控制模型的复杂度 5. 支持多任务学习 6. 实际应用中的通道设计 7. 总结 二、案例一 1. 输入图像的通道&#xff08;RGB&#xff09; 2. 输出特…...

2025寒假天梯赛训练5

L1-3 敲笨钟 - 2025寒假天梯赛训练5 思路&#xff1a;一般ex的模拟题&#xff0c;主要是找好空格的位置进行修改替换。 #include <bits/stdc.h> using namespace std; #define int long long #define endl "\n" #define sz(x) (int)x.size() #define e empla…...

PowerBI 矩阵 列标题分组显示(两行列标题)

先看效果 数据表如下&#xff1a; 我们在powerbi里新建一个矩阵&#xff0c;然后如图加入字段&#xff1a; 我们就会得到这样的矩阵&#xff1a; 我们在“可视化”->“列”&#xff0c;上双击&#xff0c;输入空格&#xff0c;就能消除左上角的"类别"两字 同理修…...

服务器部署DeepSeek,通过Ollama+open-webui部署

1. 安装ollama 1.1. linux 安装 Ollama是目前常用的AI模式部署的第三方工具&#xff0c;能一键部署deepSeek Ollama官方网址https://ollama.com/ 选择Download下载对应的服务版本 服务器选择Linux&#xff0c;下面是下载代码 curl -fsSL https://ollama.com/install.…...

PVE 磁盘管理详解:从 Windows 到 Linux 的思维转换(文末附资源)

Proxmox VE&#xff08;PVE&#xff09;是一款基于 Debian Linux 的虚拟化平台&#xff0c;其文件系统管理与 Windows 差异较大&#xff0c;尤其是磁盘和文件夹的设计逻辑。本文将以通俗易懂的方式&#xff0c;详解 PVE 中磁盘管理的核心操作&#xff0c;并对比 Windows 帮助大…...