基础的数学运算
-
注意区别 = 与 ==
赋值运算符: =
条件判断运算符 ==
-
四则混合运算 : + - × /
-
a % b = r 等价于 a = k×b + r
-
位运算:
& 按位与 | 按位或 ~ 按位取反
^(相同为0,不同为1,自反性 ,逆运算(+ 与 - 相反)是自己)
其中 因为抑或的逆运算就是自己,所以有一个很有趣的性质
交换两个数字 a b 并且不借助第三个变量
a ^= b , b ^= a , a ^= b;
其实和下面的那个式子等价
a = a + b , b = a - b , a = a - b;
比如 a = 2 , b = 4
a = a + b // a = 6 , b = 4 ;
b = a - b // a = 6 , b = 2;
a = a - b // a= 4 , b = 2;
此时 **a = 4 , b = 2;**完成了交换
同理 ^ 的逆运算就是 ^ 所以上式成立
>> 向右移动,前头补符号位 ( / 2 ) << 向左移动 (×2)
-
数学函数库 math.h
pow : 因为输入的double 类型,所以相当于可以用pow来开平方次方,任意次方都可以,
比如 求 三次根号下的x pow(x , 1.0/3);
floor,ceil,abs(stdlib.h) ,fabs(浮点数的绝对值) ,
sqrt(根号x)
log 是以e为底
log10 是以10为底的
换底公式 :log(n) / log(10)
利用 acos(-1) 来获得 π 的值
acos(-1) = π
程序流程 控制方法
关系运算符
任何表达式都有返回值
b = 3 + (a = 3 + 6)
//b = 12 , a = 9
- == , != , < , > , <= ,>= , !
!!(x) : 归一化 所有 真都为 1 所有 0 还为 0
IF语句
if( 表达式 ){
}else if( 表达式2){
}else{
}
写代码就是写逻辑
SWITCH 语句
switch(a){ // a是可枚举的值
case 1:;
case 2:;
。 。 。
}
case 是 一个入口 直到遇到break 或 结构结束
WHILE语句
while(){
}
do{
}while();
下午
函数
返回值 函数名 参数声明列表
- 声明
- 定义
递归程序
程序调用自身的编程技巧叫做递归
组成部分:
- 语义信息 ( 理解问题 )
- 边界条件处理 ( 出口 )
- 针对于问题的 处理过程 和 递归过程
- 结果返回
变参函数
-
va 一族
va_list 定义类型的变量 va_list arg; 类似 int ,就是一种类型定义
va_start 获得第一个变量的地址
va_arg 获得一个变量的值,同时指向下一个变量
va_end 释放va_list 变量的内存
gcc -c *.c -》 gcc *.o *.o -》
预编译 -》 可以将 很多对象文件 .o -》 可执行程序 .out -》