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

C语言学习笔记(二): 简单的C程序设计

数据的表现形式

常量

在C语言中常量有以下几种:

  • 整型常量: 0,-1,100
  • 实型常量: 小数形式(12.12);指数形式(12.1e3=12.1×10312.1\times 10^312.1×103)
  • 字符常量: 普通字符(’a’,’Z’,’#’);转义字符(’\n’,’\012’,’\h1B’)
  • 字符串常量: “123”,”boy”
  • 符号常量: 用一个标识符来表示常量 #define PI 3.14

关于常量的使用要注意以下几点:

  • 从常量的表示形式即可以判定其类型。
  • 不带小数点的数值是整型常量,但应注意其有效范围。
  • 在一个整数的末尾加大写字母L或小写字母l,表示它是长整型(long int)。
  • 凡以小数形式或指数形式出现的实数均是浮点型常量,在内存中都以指数形式存储。
  • C编译系统把浮点型常量都按双精度处理,分配8个字节。

转义字符

转义字符字符值
\, \" \? \\输出字符, " ? \
\a警告(alert):产生声音或视觉信号
\b退格:当前光标位置往后退一格
\f换页:当前光标位置移到下一页开头
\n换行:当前光标位置移到下一行开头
\r回车:当前光标位置移到本行开头
\t水平制表符:当前光标位置移到下个Tab位置
\v垂直制表符:当前光标位置移到下个垂直制表符对齐点
\ooo o表示八进制数输出与该八进制对应的字符。如\012代表八进制数12(即十进制的10), 对应的ASCII码为换行符
\xhhh h表示十六进制数输出与该十六进制对应的字符

变量

一个变量由变量名、变量值和存储单元组成。变量名是指该变量的唯一标识符,用于在程序中识别该变量。变量值是该变量的实际数据值。存储单元则是存储变量值的内存区域

float a=3.14159;	//3.14159为双精度浮点常量,分配8个字节;a为float变量,分配4个字节,但是编译会发出警告,一般不影响结果的正确性,但会影响结果的精度
float a=3.14159f;		//把此3.14159按单精度浮点常量处理,编译时不出现“警告”
long double a = 1.23L;	//把此1.23作为long double型处理

常变量

常变量与常量的异同是: 常变量具有变量的基本属性(有类型,存储单元),只是不允许改变其值。

define Pi 3.1415926	//定义符号常量
const float pi=3.1415926;	//定义常变量

标识符

标识符就是一个对象的名字。用于标识变量、符号常量、函数、数组、类型等。

标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线

关于标识符要注意以下几点:

  • 变量名区分大小写

  • 不能用关键字作为变量名

  • 不合法的标识符:3D64,#33,M.D.


数据类型

数据类型{基本类型{整型类型{基本整型(int):4字节短整型(shortint):2字节长整型(longint):4字节双长整型(longlongint):8字节字符型(char):1字节浮点类型{单精度浮点型(float):4字节双精度浮点型(double):8字节长双精度浮点型(longdouble):16字节枚举类型(enum)空类型(void)派生类型{指针类型(∗)数组类型([])结构体类型(struct)共用体类型(union)函数类型\text{数据类型}\begin{cases} \text{基本类型}\begin{cases} \text{整型类型}\left\{ \begin{array}{c} \begin{array}{l} \text{基本整型}\left( int \right) :4\text{字节}\\ \text{短整型}\left( short\,\,int \right) :2\text{字节}\\ \text{长整型}\left( long\,\,int \right) :4\text{字节}\\ \text{双长整型}\left( long\,\,long\,\,int \right) :8\text{字节}\\ \end{array}\\ \end{array} \right.\\ \text{字符型}\left( char \right) :1\text{字节}\\ \text{浮点类型}\begin{cases} \text{单精度浮点型}\left( float \right) :4\text{字节}\\ \text{双精度浮点型}\left( double \right) :8\text{字节}\\ \text{长双精度浮点型}\left( long\,\,double \right) :16\text{字节}\\ \end{cases}\\ \end{cases}\\ \text{枚举类型}\left( enum \right)\\ \text{空类型}\left( void \right)\\ \text{派生类型}\begin{cases} \text{指针类型}\left( * \right)\\ \text{数组类型}\left( \left[ \right] \right)\\ \text{结构体类型}\left( struct \right)\\ \text{共用体类型}\left( union \right)\\ \text{函数类型}\\ \end{cases}\\ \end{cases}数据类型基本类型整型类型基本整型(int):4字节短整型(shortint):2字节长整型(longint):4字节双长整型(longlongint):8字节字符型(char):1字节浮点类型单精度浮点型(float):4字节双精度浮点型(double):8字节长双精度浮点型(longdouble):16字节枚举类型(enum)空类型(void)派生类型指针类型()数组类型([])结构体类型(struct)共用体类型(union)函数类型


整形数据

整形数据类型字节数取值范围
int(基本整型)4−231∼(231−1)-2^{31}\sim \left( 2^{31}-1 \right) 231(2311)
unsigned int(无符号基本整型)40∼(232−1)0\sim \left( 2^{32}-1 \right) 0(2321)
short(短整型)2−215∼(215−1)-2^{15}\sim \left( 2^{15}-1 \right) 215(2151)
unsigned short(无符号短整型)20∼(216−1)0\sim \left( 2^{16}-1 \right) 0(2161)
long(长整型)4−231∼(231−1)-2^{31}\sim \left( 2^{31}-1 \right) 231(2311)
unsigned long(无符号长整型)40∼(232−1)0\sim \left( 2^{32}-1 \right) 0(2321)
long long(双长度)8−263∼(263−1)-2^{63}\sim \left( 2^{63}-1 \right) 263(2631)
unsigned long long(无符号双长度)80∼(264−1)0\sim \left( 2^{64}-1 \right) 0(2641)

只有整型(包括字符型)数据可以加signed或unsigned修饰符,实型数据不能加。

对无符号整型数据用%u格式输出。%u表示用无符号十进制数的格式输出。如:

unsigned short price=50;	//定义price为无符号短整型变量
printf("%u\n",price); 		//指定用无符号十进制数的格式输出

在将一个变量定义为无符号整型后,不应向它赋予一个负值,否则会得到错误的结果。

unsigned short price = -1;	//不能把一个负整数存储在无符号变量中
printf("%d\n",price);

image-20211206221449749


字符型数据

在C语言中,字符型数据通常以ASCII码的形式存储

字符型数据包括如下几点:

  • 字母: 大写英文字母A~Z,小写英文字母a~z
  • 数字: 0~9
  • 专门符号: 29个,包括:! " # & ’ ( ) * + , - . / : ; < = > ? [ \ ] ^ _ ` { | } ~
  • 空格符: 空格、水平制表符(tab)、垂直制表符、换行、换页(form feed)
  • 不能显示的字符:空(null)字符(以’\0’表示)、警告(以’\a’表示)、退格(以’\b’表示)、回车(以’\r’表示)等

在C语言中,字符型数据通常以ASCII码的形式存储

char c='?';	//定义c为字符型变量并使初值为字符′?′。′?′的ASCII代码是63,系统把整数63赋给变量c。
printf("%d %c\n",c,c);	//用“%d”格式输出十进制整数63,用“%c”格式输出字符′?′

浮点型数据

浮点数类型包括float(单精度浮点型)、double(双精度浮点型)、long double(长双精度浮点型)。

类型字节数小数点后位数数值范围(绝对值)
float460以及12∗10−38∼3.4∗10380\text{以及}12*10^{-38}\sim 3.4*10^{38}0以及1210383.41038
double8150以及2.3∗10−308∼1.7∗103080\text{以及}2.3*10^{-308}\sim 1.7*10^{308}0以及2.3103081.710308
long double16190以及3.4∗10−4932∼1.1∗103080\text{以及}3.4*10^{-4932}\sim 1.1*10^{308}0以及3.41049321.110308

运算符与表达式

下图总结了C语言中所有的运算符

image-20211207203849094


算数运算符含义举例结果
+ - * /加减乘除
%求余运算符a%ba除以b的余数
i++ i–在使用i之后,使i的值加/减1int i=3;
printf(“%d”,i++);
输出3
++i --i在使用i之前,使i的值加/减1int i=3;
printf(“%d”,++i);
输出4
两个实数相除的结果是双精度实数,两个整数相除的结果为整数

以下是使用算数运算符要注意的几点:

  • %运算符要求参加运算的运算对象为整数,结果也是整数,除数可以为0,但是被除数不能为0
  • 两个实数相除的结果是双精度实数,两个整数相除的结果为整数

不同类型间的混和运算

  • +、-、*、/运算的两个数中有一个数为float或double型,结果是double型,因为系统将所有float型数据都先转换为double型,然后进行运算。
  • 如果int型与float或double型数据进行运算,先把int型和float型数据转换为double型,然后进行运算,结果是double型。
  • 字符(char)型数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算。如果字符型数据与实型数据进行运算,则将字符的ASCII代码转换为double型数据,然后进行运算。

强制类型转换

强制类型转换是指在C语言中,显式地把一种数据类型转换为另一种数据类型

(double)a		//将a转换成double型
(int)(x+y)		//将x+y的值转换成int型
(float)(5%3)	//将5%3的值转换成float型
(int)x+y		//只将x转换成整型,然后与y相加

C语句

C语句是C语言的基本单位,是C程序的最小可执行单元

常用的C语句包括:控制语句、调用语句、空语句、复合语句、赋值语句


控制语句

以下是常用的控制语句:

  • if()…else…(条件语句)
  • for()…(循环语句)
  • while()…(循环语句)
  • do…while ()(循环语句)
  • continue(结束本次循环语句)
  • break(中止执行switch或循环语句)
  • switch(多分支选择语句)
  • return(从函数返回语句)
  • goto(转向语句,在结构化程序中基本不用goto语句)

调用语句

函数调用语句由一个函数调用加一个分号构成。

printf("This is a C statement. "); //其中printf("This is a C statement. ")是一个函数调用,加一个分号成为一个语句

空语句

只有一个分号的语句即为空语句。

可以用来作为流程的转向点(流程从程序其他地方转到此语句处);

也可用来作为循环语句中的循环体(循环体是空语句,表示循环体什么也不做)。


复合语句

可以用{}把一些语句和声明括起来成为复合语句(又称语句块)。

{float pi=3.14159, r=2.5, area; //定义变量area=pi*r*r;printf("area=%f",area);
}
/*注意:复合语句中最后一个语句末尾的分号不能忽略不写。*/

赋值语句

在赋值符=之前加上其他运算符,可以构成复合运算符

a+=3	//等价于a=a+3x*=y+8 	//等价于x=x*(y+8)x%=3	//等价于x=x%3

将一个占字节多的整型数据赋给一个占字节少的整型变量或字符变量时,只将其低字节原封不动地送到被赋值的变量(即发生“截断”)
{浮点→整型变量:浮点取整(去小数),再赋值整型→单双精度变量:数值不变,以浮点数形式存储到变量中double→float变量:双精度转化为单精度,取6∼7位有效数字注:双精度数值大小不能超过单精度数值float→double变量:数值不变,在内存中以8个字节存储,有效位数扩展到15位字符型→整型变量:字符的ASCII代码赋值给整型变量\begin{cases} \text{浮点}\rightarrow \text{整型变量}:\text{浮点取整}\left( \text{去小数} \right) ,\text{再赋值}\\ \text{整型}\rightarrow \text{单双精度变量}:\text{数值不变},\text{以浮点数形式存储到变量中}\\ double\rightarrow float\text{变量}:\text{双精度转化为单精度},\text{取}6\sim 7\text{位有效数字}_{\text{注}:\text{双精度数值大小不能超过单精度数值}}\\ float\rightarrow double\text{变量}:\text{数值不变},\text{在内存中以}8\text{个字节存储},\text{有效位数扩展到}15\text{位}\\ \text{字符型}\rightarrow \text{整型变量}:\text{字符的}ASCII\text{代码赋值给整型变量}\\ \end{cases} 浮点整型变量:浮点取整(去小数),再赋值整型单双精度变量:数值不变,以浮点数形式存储到变量中doublefloat变量:双精度转化为单精度,67位有效数字:双精度数值大小不能超过单精度数值floatdouble变量:数值不变,在内存中以8个字节存储,有效位数扩展到15字符型整型变量:字符的ASCII代码赋值给整型变量


以下是常见的变量赋值代码:

int a,b,c=5//指定a,b,c为整型变量,但只对c初始化,c的初值为5;相当于int a,b,c; c=5;int a=3,b=3,c=3; //对几个变量赋予同一个初值int a=b=c=3;     //错误。可以先定义,再用赋值语句,即int a,b,c; a=b=c=3;

数据的输入和输出

数据的输入和输出是指在计算机主机环境中的输入输出操作

C语言本身不提供输入输出语句,输入和输出操作是由C标准函数库中的函数来实现的

要在程序文件的开头用预处理指令#include把有关头文件放在本程序中, 如下代码所示

include "c:\cpp\include\myfile.h"  //按指定路径查找文件
include "myfile.h"  //源程序文件所在目录
include <myfile.h>  //C编译系统指定的include目录

printf函数

定义

printf函数是C语言中常用的输出函数,它可以将指定格式的字符串和数据通过标准输出(通常是控制台)输出到屏幕或文件

语法格式如下, 其中,format 参数是一个字符串,指定了输出的格式。格式字符串可以包含字符、数字、字符串和特殊字符等。后面的参数是根据格式字符串来确定输出内容的数据

printf(const char *format, ...);
格式字符说明
%d,%i以带符号的十进制形式输出整数
%o以八进制无符号形式输出整数
%x,%X以十六进制无符号形式输出整数(不输出前导符0x),用x则输出十六进制数的a~f时以小写形式输出,用X时,则以大写字母输出
%u以无符号十进制形式输出整数
%c以字符形式输出,只输出一个字符
%s输出字符串
%f以小数形式输出单、双精度数,含输出6位小数
%e,%E以指数形式输出实数,用e时指数以“e”表示(如1.2e+02),用E时指数以“E”表示(如1.2E+02)
%g,%G选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0。用G时,若以指数形式输出,则指数以大写表示
附加字符说明
I长整型整数,可加在格式符d、o、x、u前面
m数据最小宽度
n对实数,表示输出n位小数

使用实例

include <stdio.h>int main()
{int num = 123;float pi = 3.14159265;char c = 'A';char s[] = "Hello World!";printf("整数: %d\n", num);  //整数:123printf("小数: %.2f\n", pi);  //小数:3.14printf("字符: %c\n", c);  //字符:Aprintf("字符串: %s\n", s);  //字符串: Hello World!return 0;
}

scanf函数

定义

scanf函数是C语言中的标准输入函数,它可以从键盘读取数据,并把读取到的数据转换成指定的数据类型存储到变量中

下图是scanf函数的使用语法

image-20211209202934940


使用实例

在下述代码中, 由于scanf函数只读入第一个字符串, 所以输出的是"Hello"

int main(){char str[100];scanf("%s", str);  //控制台输入: Hello Worldprintf("%s", str);	//控制台输出: Hello
}

若想scanf读入一整行字符串, 可以使用如下语句

该语句的格式说明符%[^\n]的意思是读取以换行符为结尾的所有字符

scanf("%[^\n]", str);

putchar函数

定义

putchar 函数是 C 语言中的标准库函数,用于向标准输出(通常是终端)输出一个字符


使用实例

include <stdio.h>
int main()
{char a='B',b='O',c='Y';	//定义3个字符变量并初始化putchar(a);				//向显示器输出字符Bputchar(b);				//向显示器输出字符Oputchar(c);				//向显示器输出字符Yputchar ('\n');			//向显示器输出一个换行符return 0;
}                           //运行后输出BOY
include <stdio.h>
int main()
{int a=66,b=79,c=89;  putchar(a);	putchar(b);	putchar(c);putchar ('\n');      //输出整型变量(ASCII码)对应的字符return 0; 
}

getchar函数

定义

getchar 函数是 C 语言标准库中的一个输入函数。它用于从标准输入(例如键盘)读取一个字符


使用实例

从键盘输入一个大写字母,在显示屏上显示对应的小写字母

include <stdio.h>
int main ()
{char c1,c2;c1=getchar();	//从键盘读入一个大写字母,赋给字符变量c1c2=c1+32;	//得到对应的小写字母的ASCII代码,放在字符变量c2中printf("大写字母: %c\n小写字母: %c\n",c1,c2);	//输出c1,c2的值return 0;
}

相关文章:

C语言学习笔记(二): 简单的C程序设计

数据的表现形式 常量 在C语言中常量有以下几种&#xff1a; 整型常量&#xff1a; 0,-1,100实型常量&#xff1a; 小数形式(12.12)&#xff1b;指数形式(12.1e312.110312.1\times 10^312.1103)字符常量&#xff1a; 普通字符(’a’,’Z’,’#’)&#xff1b;转义字符(’\n’…...

十、STM32端口复用重映射

目录 1.什么是端口复用&#xff1f; 2.如何配置端口复用&#xff1f; 3.什么是端口重映射 &#xff1f; 4.什么是部分重映射和完全重映射&#xff1f; 5.重映射的配置过程 1.什么是端口复用&#xff1f; STM32有很多外设&#xff0c;外设的外部引脚与GPIO复用。也就是说一…...

【C++1】函数重载,类和对象,引用,string类,vector容器,类继承和多态,/socket,进程信号

文章目录1.函数重载&#xff1a;writetofile()&#xff0c;Ctrue和false&#xff0c;C0和非02.类和对象&#xff1a;vprintf2.1 构造函数&#xff1a;对成员变量初始化2.2 析构函数&#xff1a;一个类只有一个&#xff0c;不允许被重载3.引用&#xff1a;C中&取地址&#x…...

Spring基础知识

1 简介官网&#xff1a;https://spring.io/projects&#xff0c;Spring发展到今天已经形成了一种开发生态圈&#xff0c;Spring提供了若干个项目&#xff0c;每个项目用于完成特定的功能。Spring Framework是最底层的框架&#xff0c;是其他项目的根基。Spring Boot Spring MVC…...

proxy代理与reflect反射

proxy代理与reflect 在这之前插入一个知识点arguments&#xff0c;每个函数里面都有一个arguments&#xff0c;执行时候不传默认是所有参数&#xff0c;如果传了就是按顺序匹配&#xff0c;箭头函数没有 代理函数 代理对象也就是生成一个替身&#xff0c;然后这个替身处理一切的…...

机器视觉 多模态学习11篇经典论文代码以及解读

此处整理了深度学习&#xff0d;机器视觉&#xff0c;最新的发展方向&#xff0d;多模态学习&#xff0c;中的11篇经典论文&#xff0c;整理了相关解读博客和对应的Github代码&#xff0c;看完此系列论文和博客&#xff0c;相信你能快速切入这个方向。每篇论文、博客或代码都有…...

Redis过期删除策略

目录引出Redis过期删除策略Redis的两种过期策略&#xff1a;定期删除 惰性删除定期删除惰性删除Redis两种过期删除策略存在的问题Redis缓存淘汰策略Redis中的LRU和LFU算法1、LRU&#xff08;Least Recently Userd最近最少使用&#xff09;LFU 算法的引入2、LFU&#xff08;lea…...

数据流分析之def-use链分析

数据流分析之def-use链分析引言1 相关概念2 算法2.1 算法规则2.2 算法流程2.3 算法优化3 举例引言 编译过程中&#xff0c;知道函数中每个指令引用的变量(或虚拟寄存器)来自于前面的哪一次赋值是很有必要的。例如llvm中对store/load转phi优化&#xff0c;就需要准确知道该信息…...

【0175】【内存上下文】如何利用context_freelists[]来彻底释放MemoryContext中分配的所有内存(8 - 2)

文章目录 1. MemoryContext 删除的另一种形式1.1 context_freelists[] 数组1.1.1 context_freelists[0] 和 context_freelists[1] 的意义1.1.2 context_freelists[0] 和 context_freelists[1] 各自功能示意图1.2 context_freelists[] 各成员在删除context时的初始化情况1.2.1 c…...

Redis实战—黑马点评(一) 登录篇

Redis实战 — 黑马点评&#xff08;一&#xff09; 登录篇 来自黑马的redis课程的笔记 【黑马程序员Redis入门到实战教程&#xff0c;深度透析redis底层原理redis分布式锁企业解决方案黑马点评实战项目】 目录Redis实战 — 黑马点评&#xff08;一&#xff09; 登录篇1. 项目…...

建造者模式-搭建Qt窗口案例

文章目录logging日志输出子线程设计模式可视化插件类界面设计呼吸灯实现综合案例实现本综合案例&#xff0c;应用到如下的知识点。logging日志输出 自定义日志记录器&#xff0c;实现将日志输出到指定的控件中。 # 自定义日志记录器类子线程 threading实现子线程及Qt中的子线…...

*from . import _imaging as core : ImportError: DLL load failed: 找不到指定的模块

错误提示如上。为了解决这个问题&#xff0c;首先参考了解决 from . import _imag…模块。. 首先尝试了彻底卸载pillow&#xff1a;conda uninstall pillow &#xff1b; pip uninstall pillow 然后重装 pip install pillow&#xff0c;发现问题仍然没有解决。 并且尝试了windo…...

关于尚硅谷Hadoop-报错解决方案日志

以后都会将学习Hadoop中遇到的问题写到这里&#xff0c;供自己参考&#xff0c;能帮到大家更好SecondaryNameNode未启动解决办法&#xff1a;可能是端口被占用&#xff08;我没遇到&#xff09;hadoop104未在/etc/hosts配置映射路径我在hadoop104的/etc/hosts 添加了所有hadoop…...

前端高频面试题-HTML和CSS篇(二)

&#x1f4bb; 前端高频面试题-HTML和CSS篇&#xff08;二&#xff09; &#x1f3e0;专栏&#xff1a;前端面试题 &#x1f440;个人主页&#xff1a;繁星学编程&#x1f341; &#x1f9d1;个人简介&#xff1a;一个不断提高自我的平凡人&#x1f680; &#x1f50a;分享方向…...

神经网络损失函数分布可视化神器

论文名称和地址&#xff1a;Visualizing the Loss Landscape of Neural Netshttps://arxiv.org/pdf/1712.09913.pdf1.1 背景和动机作者主要想研究几个问题&#xff1a;为什么我们能够最小化高度非凸神经损失函数&#xff1f;为什么得到的最小值这个结果具有泛化性&#xff1f;不…...

ansible的部署与命令模块

目录 一、ansible的概述 1、ansible简介 2、ansible特点 3、官方网站 4、ansible的模块组成 5、ansible的工作机制 二、ansible部署 1、ansible的安装 三、ansible的命令行模块 1、command模块 2、shell模块 3、cron模块 4、user模块 5、group模块 6、copy模块 7…...

开发人员与测试人员关系的理解

在软件开发中都会有开发人员&#xff08;以下简称开发&#xff09;和测试人员&#xff08;以下简称测试&#xff09;&#xff0c;在一些小型公司可能并没有测试&#xff0c;仅仅是开发兼任测试。在这里我仅针对于有专业的测试和专业的开发的项目。 每个公司应该都有考核机制&am…...

直面原理:5 张图彻底了解 Android TextToSpeech 机制

ChatGPT 如此火爆&#xff0c;但它的强悍在于 NLU&#xff08;自然语言理解&#xff09;、DM&#xff08;对话管理&#xff09;和 NLG &#xff08;自然语言生成&#xff09;这三块&#xff0c;而 Recognition 识别和 TTS 播报这两块是缺失的。假使你的 App 接入了 ChatGPT&…...

Ruby Socket 编程

Ruby提供了两个级别访问网络的服务&#xff0c;在底层你可以访问操作系统&#xff0c;它可以让你实现客户端和服务器为面向连接和无连接协议的基本套接字支持。 Ruby 统一支持应用程序的网络协议&#xff0c;如FTP、HTTP等。 不管是高层的还是底层的。ruby提供了一些基本类&a…...

Vue3+ElementPlus+koa2实现本地图片的上传

一、示例图二、实现过程利用Koa2书写提交图片的后台接口这个模块是我写的项目中的其中一个板块——上传图片&#xff0c;这个项目的后台接口主要是是使用了后端的Koa2框架&#xff0c;前端小伙伴想要试着自己书写一些增删改查的接口可以从这个入手&#xff0c;Koa2用来了解后端…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

Linux 中如何提取压缩文件 ?

Linux 是一种流行的开源操作系统&#xff0c;它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间&#xff0c;使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的&#xff0c;要在 …...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文&#xff1a; 一文入门汽车毫米波雷达基本原理 &#xff1a;https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...