求大神整理c语言指令符号及用法大全。
C语言的关键字共有32个,根据关键字的作用,可分其为数据类型关键字、控制语句关键字、存储类型关键字和其它关键字四类。
1
数据类型关键字(12个):
(1)
char
:声明字符型变量或函数
(2)
double
:声明双精度变量或函数
(3)
enum
:声明枚举类型
(4)
float:声明浮点型变量或函数
(5)
int:
声明整型变量或函数
(6)
long
:声明长整型变量或函数
(7)
short
:声明短整型变量或函数
(8)
signed:声明有符号类型变量或函数
(9)
struct:声明结构体变量或函数
(10)
union:声明联合数据类型
(11)
unsigned:声明无符号类型变量或函数
(12)
void
:声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
(2)控制语句关键字(12个):
A循环语句
(1)
for:一种循环语句(可意会不可言传)
(2)
do
:循环语句的循环体
(3)
while
:循环语句的循环条件
(4)
break:跳出当前循环
(5)
continue:结束当前循环,开始下一轮循环
B条件语句
(1)if:
条件语句
(2)else
:条件语句否定分支(与
if
连用)
(3)goto:无条件跳转语句
C开关语句
(1)switch
:用于开关语句
(2)case:开关语句分支
(3)default:开关语句中的“其他”分支
D
return
:子程序返回语句(可以带参数,也看不带参数)
3
存储类型关键字(4个)
(1)auto
:声明自动变量
一般不使用
(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)
(3)register:声明积存器变量
(4)static
:声明静态变量
4
其它关键字(4个):
(1)const
:声明只读变量
(
2)sizeof:计算数据类型长度
(3)typedef:用以给数据类型取别名(当然还有其他作用
(4)volatile:说明变量在程序执行中可被隐含地改变
char
8
int
16
long
32
float
32
double
64
这是占的位数
bit
1
Byte=8
bit
除以8就是字节数
byte
运算符的种类
C语言的运算符可分为以下几类:
1.算术运算符
用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。
2.关系运算符
用于比较运算。包括大于(>)、小于(<)、等于(==)、
大于等于(>=)、小于等于(<=)和不等于(!=)六种。
3.逻辑运算符
用于逻辑运算。包括与(&&)、或(||)、非(!)三种。
4.位操作运算符
参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(>)六种。
5.赋值运算符
用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
6.条件运算符
这是一个三目运算符,用于条件求值(?:)。
7.逗号运算符
用于把若干表达式组合成一个表达式(,)。
8.指针运算符
用于取内容(*)和取地址(&)二种运算。
9.求字节数运算符
用于计算数据类型所占的字节数(sizeof)。
10.特殊运算符
有括号(),下标[],成员(→,.)等几种。
希望对你有帮助,如果想要好好学,建议买一本谭浩强老师的书看一下,还是比较详细的
http://soft.chinabyte.com/database/17/12324017.shtml 希望可以帮到你
编译指令编译指令
说明
#include
包含另一个文件
#define
定义一个宏(macro)或是常量
#undef
取消一个宏常量的定义
#asm和#endasm
在程序中加入汇编语言的程序
#ifdef、#ifndef、#else、#endif
用于条件式的编译
注解://—单行注解;
基本数据类型 (int,float,double,char,void)
数据类型
类型说明
长度(位)
数据长度
bit
位
1
0,1
char
字符
8
—128~127
unsigned char
无符号字符
8
0~255
signed char
有符号字符
8
—128~127
int
整型
16
—32768~32767
short int
短整型
16
—32768~32767
unsigned int
无符号整型
16
0~65535
signed int
有符号整型
16
—32768~32767
long int
长整型
32
—2147483648~2147483647
unsigned long int
无符号长整型
32
0~4294967295
signed long int
有符号长整形
32
—2147483648~2147483647
float
浮点数(实数)
32
0.175e-38~0.402e38
double
双精度浮点
32
0.175e-38~0.402e38
void
空
0
没任何数据
用户自定义数据类型格式
typedef struct{
数据类型 变量序列1;
数据类型 变量序列1;
...
}自定义数据类型的名称;
保留字
_at_,alien,bdata,break,bit,case,char,code,compact,const,continue,data,
default,do,double,far,else,enum,extern,float,for,goto,if,funcused,idata,int,
inline,interrupt,large,long,pdata,_priority_,reentrant,return,sbit,sfr,sfr16,
short,sigend,sizeof,small,static,struct,switchc_task_,typedef,using,union,
unsigned,void,volatile,while,xdata
常量表示法
常数
规则
范例
十进制
一般十进制格式
1234567890
二进制
开头加上0b
0b00001110
八进制
开头加上O
O0123
十六进制
开头加上0x
0xFF45
无符号整数常量
结尾加上U
30000U
长整数常量
结尾加上L
299L
无符号长整数常量
结尾加上UL
327800UL
浮点数的常量
结尾加上F
4.234F
字符常量
以单引号括起来
‘a’
字符串常量
以双引号括起来
“hello”
-----------------------------------------------------运算符-----------------------------------------------------
算术运算
运算符
说明
范例
执行结果
+
加
c=a+b;
c 等于10
—
减
d=a—b;
d 等于6
*
乘
e=a*b;
e 等于16
/
除
f=a/b;
f 等于4
%
取余数
g=a%b;
g 等于0
++
加1
c++;相当于c=c+1;
c 等于11
——
减1
d——;相当于d=d—1;
d 等于5
=
等于
a=8;
设置a等于8
+=
先相加在等于
e+=5;相当于e=e+5;
e 等于21
—=
先相减在等于
f—=5;相当于f=f—5;
f 等于—1
*=
先相乘在等于
b*=5;相当于b=b*5;
b 等于0
/=
先相除在等于
a/=5;相当于a=a/5;
a 等于1
%=
先取余数在等于
a%=5;相当于a=a%5;
a 等于3
※假设a等于8,b等于2
比较运算
运算符
说明
范例
执行结果
==
等于
a==5
F
!=
不等于
a!=5
T
<<o:p>
小于
a<5
F
>
大于
a>5
T
<=
小于等于
a<=5
F
>=
大于等于
a>=5
T
※比较运算结果是个布尔值既TRUE(真值)或FALSE(假值)。假设a等于8
逻辑运算
运算符
说明
范例
执行结果
&&
AND
(a>5)&&(a<10)
T
||
OR
(a<5)||(a>10)
F
!
NOT
!(a>10)
T
※逻辑运算结果是个布尔值既TRUE(真值)或FALSE(假值)。假设a等于8
位逻辑运算
运算符
说明
范例
执行结果
&
AND
a&0x01
a等于1
|
OR
a|0x80
a等于0x85
~
NOT
~a
a等于0xFA
^
XOR
a^0xFF
a等于0xFA
<<
左移
a<<1
a等于0x0A
>>
右移
a>>1
a等于0x0A
※假设a等于5
----------------------------------------------------控制命令---------------------------------------------------
if语句
if(条件) 语句1;
else 语句2;
例:if(d==4) d=0; //如果d等于4就设置d等于0
else d++; //否则就将d加1
if(ticks==0) { //如果ticks等于0
ticks=1000; //ticks 设置成1000
counter[0]++; //counter[0]加1
}
嵌套if语句
例:if(counter[0]==10) {
counter[1]++;
counter[0]=0;
if(counter[1]==10) {
counter[2]++;
counter[1]=0;
}
}
switch语句
switch (变量) {
case 常量1:语句1; break;
case 常量2:语句2; break;
case 常量3:语句3; break;
......
default ; 语句n;
}
for循环
for (初值,条件,变化值) 语句;
例:for(i=0;i<10;i++) x=x+i;
for(i=1;i<10,i++)
for(j=1;j<10,j++)
printf(“%d %d”,i,j);
无穷循环:
for( ; ; );
while循环
while (条件) 语句;
例:while (ch!=!’A’) ch=getche();
无穷循环:
while(1);
do/while循环
do {
语句;
...
} while(条件);
例:do {
ch=getche();
} while (ch!=”A”);
goto语句
loop1:
x++;
if(x<100) goto loop1;
----------------------------------------------------指针和函数------------------------------------------------
指针的定义
数据类型 *指针变量的名字;
例: char *p;
int *x;
指针与数组
例: char filename[80];
char *p;
p=filename; //指针p存放filename的开始地址
int x[5]={1,2,3,4,5};
int *p,sum,i;
p=x; //指针p存放数组x的开始地址
for(i=0;i<5;i++)
sum=sum+p[i]; //p[i]相当于x[i]
指针的运算
1.针变量前面加上*号就是取得指针所指向位置的内容。
例:int x[5]={1,2,3,4,5};
int *p;
p=x; //指针p存放数组x的开始地址
*p=10; //相当于设置x[0]等于10
2.变量前面加上&符号,可以取得一个变量的位置。
例:int x,y;
int *p;
p=&x; //指针p存放x的地址,相当于p是指向x 的指针
*p=1; //相当于设置x等于1
3.&符号也可以加在数组的前面
例:int x[5];
int *p;
p=&x[2]; //指针p存放x[2]的地址,相当于p是指向x[2]的指针
*p=50; //相当于设置x[2]等于50
函数
函数类型 函数名称(参数序列);
参数说明
{
函数的主体
}
例:void delay (void) { //不返回任何数据的函数
unsigned char i,j; //没有任何参数的函数
for(i=0,i<255,i++)
for(j=0,j<255,j++);
}
main()
{
...
delay(); //调用函数
}
例:unsigned char sum(unsigned chat a,unsigned chat b)
{
unsigned chat x;
check_GLCD_busyflag(); //函数中可以调用另一个函数
x=a+b;
return x; //return会返回x的数据
}
中断服务函数
void 中断服务程序的名称(void) interrupt 中断号码using 寄存器组号码
{
中断服务子程序主体
}
中断号码
#define IE0_VECTOR 0 //0x03
#define TF0_VECTOR 1 //0x0B
#define IE1_VECTOR 2 //0x13
#define TF1_VECTOR 3 //0x1B
#define SIO_VECTOR 4 //0x23
对于S51有定时器2
#define TF2_VECTOR 5 //0x2B
例:static void xint0_isr(void) interrupt IE0_VECTOR(或0) using 1
{
unsigned char i,j=0xFF;
for(i=0,i<16,i++)
{
j++;
P1=j; //将数值输出到P1口
delay_4isr();
}
}
-----------------------------------------------------汇编语言--------------------------------------------------
在C中加入汇编语言
例:void delay100us()
{
#pragma asm
mov r7,#1
more: mov r3,#48
djnz r3,$
djnz r7,more
#pragma endasm
}
----------------------------------------------------宏(macro)----------------------------------------------
宏的定义
%*define (macro名称) (macro的指令)
例:%*define (write_1) (
setb DI
serb SK
clr SK
)
#define 宏的名称 宏的指令
例:#define uchar unsigned char
C语言中的符号总结
运算符的种类C语言的运算符可分为以下几类;
1. 算术运算符
用于各类数值运算,包括加减乘除求余自增自减共七种运算
{ ( + ) ,( - ),(* ) ,( / ) ,( % ),( ++ ),(-- )}。
2. 关系运算符
用于比较运算,包括大于(>),小于(<</span>),等于(==),大于等于(>=),
小于等于(<=),不等于(!=)共六种。
3.逻辑运算符
用于逻辑运算,包括与(&&)或(||)非(!)三种.
4.位操作运算符
参与运算的量,按二进制位进行运算,包括:
位与(&),位或(|),位非(~),为异或(^),左移(<<),右移(>>)共六种。
5.赋值运算符
用于赋值运算,分为:
简单赋值(=)
复合算术赋值(+=,-=,*=,/=,%=)
复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。
6.条件运算符
这是一个三目运算符,用于条件求值(?:)。
7.逗号运算符
用于把若干表达式组合成一个表达式(,)。
8.指针运算符
用于取内容(*)和取地址(&)两种运算。
9.求字节数运算符
用于计算数据类型所占用的字节数(sizeof)。
10.特殊运算符
有括号(),下标[],成员(→, .)
1.C的数据类型
基本类型,构造类型,指针类型,空类型
2.基本类型的分类及特点
类型说明符 字节 数值范围
字符型char 1 C字符集
基本整型int 2 -32768~32767
短整型short int 2 -32768~32767
长整型 long int 4 -214783648~214783647
无符号型 unsigned 2 0~65535
无符号长整型 unsigned long 4 0~4294967295
单精度实型 float 4 3/4E-38~3/4E+38
双精度实型 double 8 1/7E-308~1/7E+308
3.常量后缀
L或l 长整型
U或u 无符号数
F或f 浮点数
4.常量类型
整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。
5.数据类型转换
a自动转换
在不同类型数据的混合运算中,由系统自动实现转换, 由少字节类型向多字节类型转换。 不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左边的类型。
b强制转换
由强制转换运算符完成转换。
6.运算符优先级和结合性
一般而言,单目运算符优先级较高,赋值运算符优先级低。 算术运算符优先级较高,关系和逻辑运算符优先级较低。 多数运算符具有左结合性,单目运算符、三目运算符、 赋值
7.表达式
表达式是由运算符连接常量、变量、函数所组成的式子。 每个表达式都有一个值和类型。 表达式求值按运算符的优先级和结合性所规定的顺序进行。
表示输出类型的格式字符 格式字符意义
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀O)
x 以十六进制形式输出无符号整数(不输出前缀OX)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
e 以指数形式输出单、双精度实数
g 以%f%e中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
标志字符为-、+、#、空格四种,其意义下表所示:
标志格式字符 标 志 意 义
- 结果左对齐,右边填空格
+ 输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号
# 对c,s,d,u类无影响;对o类, 在输出时加前
缀o 对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点
格式字符串
格式字符串的一般形式为: %[*][输入数据宽度][长度]类型 其中有方括号[]的项为任选项。各项的意义如下:
1.类型
表示输入数据的类型,其格式符和意义下表所示。
格式 字符意义
d 输入十进制整数
o 输入八进制整数
x 输入十六进制整数
u 输入无符号十进制整数
f或e 输入实型数(用小数形式或指数形式)
c 输入单个字符
s 输入字符串
转义字符
转义字符是一种特殊的字符常量。转义字符以反斜线”\”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。例如,在前面各例题printf函数的格式串中用到的“\n”就是一个转义字符,其意义是“回车换行”。转义字符主要用来表示那些用一般字符不便于表示的控制代码。
常用的转义字符及其含义
转义字符 转义字符的意义
\n 回车换行
\t 横向跳到下一制表位置
\v 竖向跳格
\b 退格
\r 回车
\f 走纸换页
\\ 反斜线符”\”
\’ 单引号符
\a 鸣铃
\ddd 1~3位八进制数所代表的字符
\xhh 1~2位十六进制数所代表的字符
广义地讲,C语言字符集中的任何一个字符均可用转义字符来表示。表2.2中的\ddd和\xhh正是为此而提出的。ddd和hh分别为八进制和十六进制的ASCII代码。如\101表示字?quot;A” ,\102表示字母”B”,\134表示反斜线,\XOA表示换行等。转义字符的使用
在C语言中,对变量的存储类型说明有以下四种:
auto 自动变量
register 寄存器变量
extern 外部变量
static 静态变量
自动变量和寄存器变量属于动态存储方式, 外部变量和静态变量属于静态存储方式。在介绍了变量的存储类型之后, 可以知道对一个变量的说明不仅应说明其数据类型,还应说明其存储类型。 因此变量说明的完整形式应为: 存储类型说明符 数据类型说明符 变量名,变量名…; 例如:
static int a,b; 说明a,b为静态类型变量
auto char c1,c2; 说明c1,c2为自动字符变量
static int a[5]={1,2,3,4,5}; 说明a为静整型数组
extern int x,y; 说明x,y为外部整型变量
与指针有关的各种说明和意义见下表。
int *p; p为指向整型量的指针变量
int *p[n]; p为指针数组,由n个指向整型量的指针元素组成。
int (*p)[n]; p为指向整型二维数组的指针变量,二维数组的列数为n
int *p() p为返回指针值的函数,该指针指向整型量
int (*p)() p为指向函数的指针,该函数返回整型量
int **p p为一个指向另一指针的指针变量,该指针指向一个整型量。
指针变量的赋值
p可以有以下两种方式:
(1)指针变量初始化的方法 int a;
int *p=&a;
(2)赋值语句的方法 int a;
int *p;
p=&a;
(1)取地址运算符&
(2)取内容运算符*
拼音搜狗输入法里面有
C语言大神来,高分
代码本身没有问题,请看运行结果:提如下建议:1.memset(a,'\\0',sizeof(a));memset(b,'\\0',sizeof(b));这两行不要,如下 char a[10005]={0};char b[1000][1000]={0};就够了。2.又有变量t,又有变量n是啥意思?有一个就够了,不就是次数控制嘛!3.关于“不知道列数”的说明:...
求C语言大神
我写了一个,坐标系原点(0,0)左上角,相切,包含都不算在相交。include <stdio.h>#include <assert.h>\/\/ 矩形结构struct Rect{int l, t, r, b;};\/\/ 判断线段是否相交,必须是水平线或垂直线bool IsEdgeCross(int e1x, int e1y1, int e1y2, int e2x1, int e2x2, int e2y){assert...
求c语言大神
输入的时候应该是scanf("%d",&变量名),少了一个符号。
C语言编程 求大神
include <stdio.h> include <string.h> void sort(int a[], int n);int ex_minus(int dst[], int src[], int n); \/\/返回负数的个数;void exchange(int *a, int *b);define n 10 int main(int argc, char **argv){ int i = 0;int count = 0;int mid = 0;int array[n]...
C语言大神来
根据前面的各项规律,(-1)^n\/((n-1)*n)这个通项是错误的,应该是(-1)^(n+1)\/((n+1)*n)。根据正确通项,C代码如下:include <stdio.h>int main(int argc,char *argv[]){ int i,j,k,n; double sum; printf("Input n(int 0<n)...\\nn="); if(scanf("%d",&...
求c语言大神!!!
include<stdio.h>#include<stdlib.h>#include<string.h>\/\/定义工人工资资登记表结构体,使用动态分配内存,由键盘输入工人工资等相关信息。然后键入其中一人的姓名,查询其工资情况。 要求使用结构体指针访问结构成员typedef struct worker_info{char name[100];int salary;struct worker_info* next;}...
求大神将下面的C语言程序每一行都注释一下,很急谢谢啦!
include<stdio.h>#include<string.h> int main(){ void inverse(char str[]); \/\/ inverse()函数声明 char str[100]; printf("input string:"); scanf("%s",str); \/\/ 输入字符串 inverse(str); \/\/ 用inverse对字符串进行处理 printf("inverse string:%s\\n",str); ...
求大神帮忙!! c语言编程,
include <stdio.h>int main(){ int n,a,b,c,x,y; scanf("%d %d",&a,&b); x=a; y=b; n=b; c=a%b; while(c!=0) { a=b; b=c; c=a%b; } printf("最大公约数是:%d\\n",b); printf("最小公倍数是:%d\\n",x*y\/b...
求一条c语言指令 我想写一些话 用printf输出 但每句话中间想要有一段...
include <stdio.h> include <windows.h> define STR_PRINTF "This is C\\n"int main(void){ printf("Hello Word!\\n");Sleep(1000);\/\/毫秒为单位 printf(STR_PRINTF);return 0;} 好心的楼主,如果可以就采纳吧!
刚学C语言,求C语言大神指导···
printf("s2[%d]=%c\\n",a,s2[a]);} printf("\\n");fp=fopen("用户信息.txt","r+");for(a=0;a<6;a++){ fscanf(fp,"%c",&mm[a]);\/\/printf("mm[%d]=%c\\n",a,mm[a]);} fclose(fp);int ml = strlen(mm);for(a=0;a<ml;a++){ printf("mm[%d]=%c\\n",a,mm[...
虿航桂克: auto :声明自动变量 break:跳出当前循环 case:开关语句分支 char :声明字符型变量或函数 const :声明只读变量 continue:结束当前循环,开始下一轮循环 default:开关语句中的“其他”分支 do :循环语句的循环体 double :声明双精度...
邹平县13315815079: 求C语言符号意义大全 - ?
虿航桂克: 运算符解释结合方式() [] -> .括号(函数等),数组,两种结构成员访问由左向右! ~ ++ -- + - * & (类型) sizeof否定,按位否定,增量,减量, 正负号 , 间接,取地址, 类型转换 ,求大小由右向左* / %乘,除,取模由左向右+ -加,减由左向右<< >>左移,右移由左向右< <= >= >小于,小于等于,大于等于,大于由左向右== !=等于,不等于由左向右&按位与由左向右^按位 异或 由左向右| 按位或 由左向右&& 逻辑与 由左向右|| 逻辑或 由左向右? :条件由右向左= += -= *= /= &= ^= |= <<= >>=各种赋值由右向左,逗号(顺序)由左向右
邹平县13315815079: c语言中各个符号以及单词的含义和用法 - ?
虿航桂克: 如果要说系统自己定义变量也没有几个 比如基本类型变量:int short usigned long float double char比如一些函数sizeof FILE struct typedef define malloc stdin fflush close 什么的!
邹平县13315815079: 寻找常用C;/命令符??
虿航桂克: COM (系统命令文件) EXE (可执行文件) SYS (系统专用文件) OBJ (目标程序文件) LIB (库 文 件) BAK (备 份 文 件) BAT (批 处 理文件) ASM (汇 编语 言) BAS (BASIC 语 言) FOR (FORTRAN语 言) C ( C 语 言) PAS (PASCAL语 言) PRG (DBASEⅢ命令 ) CON (键盘显示器) NUL (虚 拟 设 备) AUX、COM1 (通讯接口) LPT1 (打印机) *.* (所 有 文 件)
邹平县13315815079: 本人现在在开始学C语言,求所有符号和它们的用法大全.如%d啊这些,越详细越好,分可以加.?
虿航桂克: 我看见过 有人要 背变量名的,~~~不是说好笑哈,而是无奈,~~~学习,真不是这么学的,无论学什么,难道你走路,是 走一步,然后 记下 这个位置?先找入门的书看把,~~~ 虽然我也是新人,但是 我知道,学习 理解是第一位,~~~那么符号,用多了 就记住了,这些符号不是需要去记,而是要去 注意 区分,它们 如何使用
邹平县13315815079: 关于C语言的命令符 - ?
虿航桂克: #include<stdio.h>并不是调用函数的意思. stdio.h、dir.h、string.h、……这些叫做头文件,里面预先已经定义好了一些函数等内容, #include<xxxx.h>你可以理解为对这些头文件的引用,引用了头文件,就可以使用该头文件中预定义好的函数了...
邹平县13315815079: C语言命令及注释?
虿航桂克: /*注释内容*/ 这是块注释 //注释内容 这是行注释
邹平县13315815079: c语言中像&等的代码的含义及用法(不要求全部) - ?
虿航桂克: 取 变量地址,基本类型的数据输入中常用到:例如 int n; scanf("%d",&n); printf("%d",n);建议认真读一些基础c语言书籍.
邹平县13315815079: C语言中这些符号的作用? - ?
虿航桂克: 这里的%ld\n 是什么意思? 是 输出 长整形 十进制 数 同样的在别的地方还有 %u\n等等 输出 无符号的 十进制数类似的有多少符号,都在什么地方用? 格式化字符串的例子,在C语言的参考里有 c Character a d or i Signed decimal integer 392 ...
邹平县13315815079: c语言的算法符号 - ?
虿航桂克: 如果参与运算的两个量都是整型值(即int\long int等类型),那么/运算的结果只保留整数部分,比如:5/2的值不是2.5,而是2当参与运算的量中有一个不是整型值时,/运行的结果就是准确的,比如:5.0/2的值就是2.5%是求余数的操作符,只用于整型值,比如:5%2的值就是1