1.变量初始化:
初始化:在创建变量时赋值
赋值:改变变量的值
2.运算符
* + -:
/:分母不能为0
%取余:左右操作数与整型兼容,结果符号与左操作数符号一致且结果小于右操作数
++:前置++:++i 先加后用 i开辟的内存存储的值直接变
后置++:i++ 先用后加 i开辟的内存存储的值也直接变,但是i++自己是复制的i之后开辟的临时变量.
--:与++一致
=赋值:混合赋值:
小数部分截断:小数赋值给整数时,保留整数部分
高位截断:内存中占字节大的类型赋值给小字节类型 截断高位保留低位(数据丢失)
符号位扩展:小字节类型转化为大字节类型,有符号则空穴补符号位,无符号空穴补0
():强制类型转化
,顺序求值 从左到右计算表达式的值,最终结果是最右边的表达式的值。
3.表达式:
循序问题:根据用算符的优先级判断
编译器不同有些表达式的结果也不一样,是计算顺序问题。
4.左右值:
基准点:赋值运算符左右
左值变量可以被赋值,右值常量不可以被赋值
const: 其修饰变量之后,该变量也不可以被赋值(类似于变成右值),指针可以改变该变量的值
可以通过&(取地址)判断其为左值或右值 左值可以被取地址
5.各类型数据混合运算
隐式转换问题:
横向必定转换,竖向低到高转换
必转:小字节去适配cpu的运算。
6.几个函数
long int random(void):产生随机数:头文件,#include <stdlib.h> 返回值类型,long int 实参类型 void
void srandom(unsigned int seed)设置随机数生成的种子:头文件,#include <stdlib.h>返回值类型,void 实参类型 unsigned int seed
time_t time(time_t *tlod) 获取当前时间:头文件,#include <time.h>返回值类型,time_t 实参类型 time_t *tlod
函数的形参和实参类型匹配,个数相同。