内置数据类型:char short ....
自定义类型:struct enum union 数组...
牛客网:oj ——online judge在线判题
oj题型
1.IO型 自己写所有的代码
2.接口型 只需要完成一个函数就可以了
EOF文件结束标志 本质上是-1
#define EOF -1
一个局部变量不给初始化的化,默认随机值
if后面如果没有大括号只能跟一条语句,多条语句就要加大括号,建议无论有多少都写上大括号,这样逻辑清晰
scanf()这个函数如果读取正确的化会返回一个1(返回的数取决于你输入几个数,如果你输入两个数就返回2),读取错误的化会返回一个EOF
一,操作符
单目操作符,只有一个操作数的操作符
!逻辑反操作 c语言中 0就是假,非0就是真,!就是把假变成真
a =10 b =!a b就变成0
sizeof()计算变量类型的长度,以字节为单位,写数据类型或者变量名都可以
~把一个二进制按位取反
++ 前置就是先+后置就是后加
逻辑操作符 :只关注真假
&&
||
三目操作符 什么玩应?真执行这个:假执行这个
逗号表达式 , ,, , ,从左向右依次计算整个表达式的结果是最后这个表达式的结果
[]下标引用操作符,对于他来说也有两个操作数一个是比如arr【1】,arr是一个1是一个 如果没有参数,就只有一个操作数
二.关键字:关键字是不能创造的
auto 自动变量 一般都是省略掉的,用来修饰局部变量的
beak,一般在循环里面用 switch for while do while
case 用在switch语句里
const 修饰变量
continue 用在循环语句
enum 枚举
struct 结构体
union 联合体
extern 声明外部符号
register 寄存器
static 修饰变量和函数
typedef 类型重定义
volatile 讲Linux时候再详细讲解
typedef 就是用来给类型重新起个名字
比如unsigned int太长了我不想用就可以写
typedef unsigned int uint;
此时unsigned int num1 = 0;
和uint num2 = 0;表达的是一个含义
register 寄存器关键字
计算机中的一种存储器叫寄存器,是集成到cpu上的
寄存器的读写速度是非常快的,如果以后一个变量要大量频繁的用到就可以将它定义再寄存器,来提高读写速度,提高效率,但是不是你写了register就会定义到寄存器里面,他只是起到一个建议的作用,最终是谁是由编译器决定
寄存器变量是不能取地址的,因为取地址是取内存的地址 ,寄存器是在cpu上的没有地址