1月5日 c语言学习 总结

基础的数学运算

  1. 注意区别 = 与 ==

    赋值运算符: =

    条件判断运算符 ==

  2. 四则混合运算 : + - × /

  3. a % b = r 等价于 a = k×b + r

  4. 位运算:

​ & 按位与 | 按位或 ~ 按位取反

​ ^(相同为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 -》

猜你喜欢

转载自blog.csdn.net/weixin_39722329/article/details/85930392