**
c语言操作符
**
1.算术操作符
printf("%d\n",7 / 2.0); 3.5 (除号)
printf("%d\n",7 / 2); 3
printf("%d\n",7 % 2); 1 (取模的余数)
2.移位操作符
右移 >>
int a = 8; //本质上移动8的二进制(1000)右移一位
int b = a >> 1;//输出为4(0100)
3.位操作符
&按位与 ^按(二进制)位异或 | 按位或
4.赋值操作符
= += -=
5.单目操作符
!逻辑反操作
sizeof(计算的是变量所占内出空间的大小单位为字节)
~ 按位取反
二进制表示形式:原码、反码、补码
100000000000000000000000000000001 - 原码
111111111111111111111111111111110- 反码
111111111111111111111111111111111- 补码
整数在内存中存储的是二进制表示的补码
正整数的原码反码补码相同
++ –
6.强制转换符 ()
7.逻辑与 && 逻辑或||
8.条件操作符
exp1 ? exp2 : exp3// 1为真,2为最终结果,1为假,3为最终结果9
9.逗号表达式
从左至右依次计算,但是整个表达式的结果是最后一个表达式结果
exp1 , exp2 , exp3
关键字
1.auto局部变量都是自动创建自动销毁,一般省略 auto int
2.continue - 循环
3.case - switch case
4.default – 应用于switch
5.enum 枚举
6.extern 声明外部语句的
7.register 寄存器(一种存储器)
8.signed 有符号 unsigned 无符号的
9.static 静态的 可以修饰局部变量,改变的是局部变量的生命周期(变长),和程序的生命周期一样长
10.typedef 类型定义 //typedef unsigned int uint;
11.union 联合体或共用体
12.volatile
static
1.可以修饰局部变量,改变的是局部变量的生命周期(变长),和程序的生命周期一样长
#include <stdio.h>
int sum(int a)
{
int c = 0;
static int b = 3;//第一次i = 0,b = 3,第二次i = 1,b = 5
c += 1;
b += 2;
return (a + b + c);
}
int main()
{
int i;
int a = 2;
for (i = 0; i < 5; i++)
{
printf("%d,", sum(a));//8 10 12 14 16
}
}
#include <stdio.h>
int sum(int a)
{
int c = 0;
int b = 3;//一次循环过后销毁,第二次从新创建
c += 1;
b += 2;//第一次i = 0,b = 5,第二次循环b = 5
return (a + b + c);
}
int main()
{
int i;
int a = 2;
for (i = 0; i < 5; i++)
{
printf("%d,", sum(a));// 8 8 8 8 8
}
}
2.修饰全局变量
改变了这个全局变量的作用域,只能在源文件内部使用
3.修饰函数
改变了这个函数的使用范围,这个函数只能在这个函数的源文件内部使用