操作符:
c语言非常灵活
c语言提供了丰富的操作符使其运用较为灵活
算术操作符:+ - * / %
除号:除号的两端都是整数的时候,执行整数除法,如果两端只要有一个浮点数那么执行,浮点数除法。
取模:取模操作符两端必须是整数
移位操作符:>> <<
涉及二进制,后面补充
左移 右移
位操作符:& ^ |
赋值操作符:= += -= *= /= &= ^= |= >>= <<=
只是举了+=和-=的例子
单目操作符:只有一个操作数的操作符
a+b;+ 双目操作符
! 逻辑反操作(c语言规定0表示假!0表示真)
- 负值
& 取地址
sizeof 操作符单目操作符
~ 对一个数的二进制位取反
-- 前置、后置--(先使用后减减)
++ 前置、后置++(先使用后加加)
* 间接访问操作符(解引用操作符)
(类型) 强制转换
关系操作符:
>
>=
<
<=
!=
==
可以打印hehe 首先a初始化了10,接着又给a赋值为3所以if判断语句成立执行
当为==时判断a=10的值与3是否相同。很显然不相同所以不执行。
逻辑操作符:
&& 逻辑与(生活中的并且)
|| 逻辑或(生活中的或者)
#include<stdio.h>
int main()
{
//&&--并且
//||--逻辑或
int a=0;
int b=20;
if(a&&b)//为假 不执行下面语句
{
printf("hehe\n");
}
return 0;
}
&&时a b都为真才能为真
||时a b只要有一个为真就为真
条件操作符:也叫三目操作符
exp1?exp2:exps
(exp1,exp2,exp3)
用逗号隔开的一串表达式
逗号表达式特点:从左到右依次计算,整个表达式结果是最后一个表达式结果
下标引用、函数嗲用和结构成员:
[]
()
.
->
关键字:
关键字:c语言本身内置,关键字不是自己创建出来,也不能自己创建
auto:修饰变量 break:跳出循环 case:一般和switch default一起用 const:常属性continue:循环 enum:枚举 extern:声明外部符号 signed:有符号的 unsigned:无符号的 register:寄存器 static:静态的 struct:结构体 typedef:类型重命名 union:联合体、共用体 void:无
char、short、int、long、longlong、float、double
字符、短整型、整型、长整型、更长的整型、单精度浮点、双精度浮点数
(定义变量不能与关键字相同)
变量的命名1.有意义2.名字必须是字母数字下划线,不能有特殊字符,不能以数字开头
typedef:类型定义/类型重命名
static:静态的
- 修饰局部变量--静态局部变量
1.static修饰的局部变量出了作用域,不销毁。
本质上static修饰局部变量时改变了变量的存储位置,将原本从栈区的局部变量改变了存储位置到了静态区
存储位置的改变影响了生命周期,生命周期变长和程序生命周期一样。
2.修饰全局变量--静态全局变量
当使用static修饰全局变量会报错
有什么用:可以减小作用域,增强安全性
3.修饰函数--静态函数
与全局变量类似(函数也具有外部链接属性而用static修饰后它只具有了内部链接属性)