C语言学习第二站--数据的运算

2.运算符和表达式 

算术运算 
赋值运算 
逗号运算 

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

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

    注意:
       强制类型转换,对运算数本身不会产生影响
++:  //自增运算 每次加1 
  ++i //先++ ,后用
  i++ //先用,后++ 
  
  //注:
     1. 先加后用,或者是先用后加,这个规则,只有在参与到别的运算中时,发挥作者用。
     2. 单独使用时,前置加加 和 后置加加,效果是一样的。
     3. 运算数,必须是个左值 
        (const int a;//这里的a本身是左值,但是不能做++a,a++,原因是const修饰后,a成了只读变量)
左值:
   int a;
   a = 10;  // 能放在 = 左边的值,叫做左值  --- 变量 
右值:
   只能放在等号右边  --- 常量 
现在左值 和 右值:
 
 能被定位到的 左值  --- 变量 
 不能被定位到的右值 --- 常量 及 表达式 
 

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

注意:
  1.编译时错误,因为编译器只做语法检查 -- 主要是语法问题 
  2.运行时错误,逻辑问题 -- 检查自己的思路逻辑

  
注意:
  printf("%d, %d\n" ,i,i++); //因为 i ++ ,++i 这个 自增改变的时间点,没有明确规定
 总之,不要写出别人看不懂的、也不知道系统会怎样执行的程序。

赋值运算符:

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

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

int a,b,c;
a=b=c=1 

a=b=(c=1)
c=1 //赋值运算表达式 
    //结果就是c中获得到的值

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

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

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

逗号运算:

,
连接多个表达式 

表达式1,表达式2, ... ,表达式n 

运算规则:
顺序求值运算

依次,求解表达式1到n 

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

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值