//单目操作符
1.!//逻辑反操作符
if(!(3>2)) !1=0——
if(a) if(!a)=else
2.- //负数操作符
3.+ //正数操作符
4.& //取地址操作符
5.sizeof //操作数的类型长度操作符——字符类型字节数,数组长度
操作符可以不使用括号 ——a括号可忽略
int a = 1;
pritf("%d",sizeof (a));//——4
int a[10]={0};
printf("%d\n",sizeof(a))//输出数组长度
sizeof(a[0]);——4 sizeof (a)/sizeof(a[0])——可求算数组大小——10
6.~ //对一个数的二进制按位取反操作符 一字节八位
int a = 0;
printf("%d\n",~a)—— -1
0的二进制:00000000000000000000000000000000(32个)
按位取反: 1111111111111111111111111111111111111
二进制第一位=0,正值,第一位=1,负值——数值符
整数(负数)
正数:原码,反码,补码一致
负数:-1 //在内存中,以补码的形式存在
原码:10000000000000000000001—— -1(首位为1,后面从第二个0开始到最后一个1,二进 制结果为1,所以最后为-1)
反码:11111111111111111111111110 //符号位(第一位)不变,其他位改变
补码:11111111111111111111111111 //在反码的基础上加一
所有整数按位取反的值是其本身+1的负数
所有的负数按位取反的值是其本身+1的绝对值
0按位取反是-1
int a = 2;
int b = -2;
printf("%d\n",~a);
printf("%d\n",~b);
7.--前置,后置--
++前置,后置--(后置:先使用输出原来的值(打印),再进行加加或减减
前置:先计算,再使用计算后,再输出)
例:a=1 ; a++= 1 ;++a=3
8.(类型)强制类型转换
int a = 3.14——会报错 printf("%d",a)——a=3
int a = (int)3.14——强制类型转换 printf("%d",a)——a=3——不会报错
9.关系操作符
> ,>= ,<=,!=,==
10.逻辑操作符
&&,||
11.条件操作符
exp1? exp2:exp3
int a = 3;
int b = 7;
int max = 0;
if(a>b) {max=a;}
else {max = b};
max = a>b ? a:b(if else的缩写)
12.逗号表达式——结果是最后一个表达式的 结果
exp1,exp2,exp3...expN
int a = 3;
int b = 7;
int c = 0;
int d = (a=b-c,b=c+a,c=a-b);
printf("%d",d)—————— 0
13.下标引用操作符—— []
int a[10] = {1,2,3,4,5,6,7,8,9,10};
a[5] = 6
14.函数调用操作符()——printf()
15.关键字——int float.....——C语言提供的不能创建的,不能把关键字当作变量名
auto :自动变量关键字
{auto int a = 1; }——进入作用范围,变量a自动创建,出去后自动销毁,一般省略不写
break :循环程序中,跳出循环关键字
while : while循环
for :for循环
case : 在选择语句中的应用
continue : 循环关键字——循环中,遇到某种情况,重新开始循环
if
else
switch :循环——与case配合
default :
switch ()
case 1:
case 2:
default
do while : 先执行,后判断循环条件,在执行
goto : 跳转语句,跳过中间有些代码,到后面的某一步
16.变量类型关键字
char :字符类型
int float double long short
signed(有符号类型)—— -10,+20
int 00000000 00000000 00000000 00000000 —— -2^31-2^31
unsigned(无符号类型)——打印方式%u
int00000000 00000000 00000000 00000000—— 0-2^32
const (常变量关键字)——不能改变
enum (枚举关键字)
extern (外部变量,函数申明符号)
extern intcAdd(int x,int y) extern int gol_a; int main() { int a = 1; int b = 2; int sum = 0; sum =Add(a,b) printf("%d",sum); } int gol_a=1——全局变量 int Add(int x,int y); { return x+y }
register:寄存器变量关键词
register float a = 123;
static : 静态变量关键字
修饰局部变量时,局部变量会自身生命周期,变成了与全局变量生命周期(整个项目 的生命周期)一致
修饰全局变量时,使得全局变量只能在自己所在的源文件.c文件中使用,extern 引用不了
改变外部连接属性,使得其无法在其他文件中使用
修饰函数时,使得函数只能在自己所在的源文件.c文件中使用
结果是2 2 2 2 2 2 2 2 2 2 2(十个)
void test()
{ int a = 1; a++ printf("%d",a) }
int i = 0;
while(i<10)
{
text()
i++
}
return 0;
}
结果是2,3,4,5,6,7,8,9,10,11
void test()
{ static int a = 1;——(只执行一次)
a++
printf("%d",a)
}
int i = 0;
while(i<10)
{
text()
i++
}
return 0;
}
17.#define定义的常量
define Pi 3.14
int main()
{
printf("%f",Pi);
return 0;
}
18.#define 定义的宏
#define PRINTF printf("Hello World!")
#define ADD(x,y) ((x)+(y))
int main()
{
PRINTF;——输出hello world
nt a = 3*ADD(2,3);——输出9
printf("%d\n",a);
return 0;
}