嵌入式学习笔记(day4)

                                                                  C语言基础

(1)算术运算:
+(加)
-(减)
*  (乘)//区分数学上符号 和 c语言中的符号 
/(除)
   注:
     1.除数不能为 0 
     2.两个整型数相除,结果相当于整除 
%(取余) 
   注:
     1.操作     2. 不能是 0  //除数不能为 0
   eg(一些应用):
     1,判断奇数 偶数?
               %2 ==> 1 奇数 
                            0 偶数 
     2,%N
             结果 [0,N-1]

     3,求余的符号(正负) 
            取决于 左操作数 

(2)强制类型转换:
     可以强制转换某些数据的类型 
     (类型)运算数    //将运算数对应的类型 强转 成 括号中的类型 

    注意:
       强制类型转换,对运算数本身不会产生影响

(3)++:  //自增运算 每次加1 
    ++i //先++ ,后用
    i++ //先用,后++ 
  
    注:
     1. 先加后用,或者是先用后加,这个规则,只有在参与到别的运算中时,发挥作用。
     2. 单独使用时,前置加加 和 后置加加,效果是一样的。
     3. 运算数(i),必须是个左值 
        (const int a;//这里的a本身是左值,但是不能做++a,a++,原因是const修饰后,a成了只读变量)
       

    lvalue  //left value  --- 左值

    左值:
       int a;
       a = 10;  // 能放在 = 左边的值,叫做左值  --- 变量 
    右值:
       只能放在等号右边  --- 常量

   lvalue (locationable value) //可定位的  ---可以获取到它的地址 
   &a //& 表示取地址 ---获取a对应的内存单元的编号(地址)
   现在左值 和 右值:
   能被定位到的 左值  --- 变量 
  不能被定位到的右值 --- 常量 及 表达式 

(4)运算符优先级和结合性:
   1.优先级 
     一定是先结合的  
     优先级使用,是在不同级别的运算符混合运算时  
     i++-3 => (i++)-3
   2.结合性 
     同一优先级 

  //贪心原则:
    从左到右逐个字符扫描,尽可能多的结合成c的运算符
    i ++ ++ + i
    ((i++)++) + i 

(5)赋值运算符: = 

   1, int a;
         a = 10 //赋值运算 

        int a = 10; //这个一般不当作赋值运算,只当作是初始化 

       不同精度类型间的混合赋值

2,//长类型 <=>短类型 
    //整型 
    1. 长类型=>短类型  此时 高位截断 
    2. 短类型=>长类型  
        有符号 短类型 则 作符号位扩展 
        无符号 短类型 则 高位 补0

(6)高精度 和 低精度 
      float f = 1.23;
      int a = f;

      浮点数 给到 整型变量中 ,此时 精度丢失(小数丢失)

       +=  // a += 1 <=> a = a + 1

       -=    *=    /=   %= (同理)

(7)逗号运算:
       连接多个表达式 

      表达式1,表达式2, ... ,表达式n 
       运算规则:
      顺序求值运算

      依次,求解表达式1到n 

      逗号表达式的结果是: 最后一个表达式求值的结果 

(8)输入输出

      输入 ---->内存---->输出

    函数:
    单个字符 
    putchar   getchar 
    格式化操作函数
    prinf    scanf

   字符串操作 (*) //数组
   puts / gets 

   单个字符:

   putchar() 

  int putchar(int c); //形参 --形式参数 ---本身是一个变量 
 功能:
     输出一个字符 
 参数:
   @c   要输出的 字符的 ascii码值 
 返回值:
   成功 返回输出了的字符的 ASCII的值
   失败 EOF (实际是-1) 
 eg(例子):
  char c = 'a'; 
  putchar(c); //输出c中ascii码值对应的字符 
     
int getchar(void);
  功能:
      从键盘获取一个字符 
  参数:
    void 表示空类型,在函数形参表示不许参数 
  返回值:
    成功 返回读到了的字符的ASCII码值
    失败 -1

 eg(例子):
   int ret;
   ret = getchar(); //ret将保存 getchar从键盘获得到的字符的ASCII码值

格式化操作函数:

 printf //格式化输出函数
 int printf(const char *format, ...);  //... 表示可变参数 --参数的数量可以变 

 int printf(格式控制字符串,输出列表);
 
 printf("a = %d\n",a);
 
 格式控制字符串:
 占位符(%d) //将来要被 后面的参数值 替换掉 --格式转换          普通字符 //原样输出 

 注意:
    1.一个占位符,只能匹配一个参数
    2.占位符匹配,是按顺序依次匹配的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值