转义字符,运算符和不同类型数据的转换03

一:转义字符

在其中制表符\t需要着重理解,他的作用为向后移动八个字符,包含了已经输出的字符,如果输出的字符超过八个那将从第九个字符开始继续往后八个字符。思考一下,下面将输出什么?

输出结果为:

其中/r的作用为回到本行的开头。

二:运算符

上图是c语言中的所有运算符,先来了解一下优先级,结合性及表达式

优先级 --- 不同优先级的运算 混合运算时,高优先级的先结合 
结合性 --- 同一优先级的运算 混合运算时,按照结合性进行结合。
表达式:
  由运算符 和 运算数构成字符序列
  表达式都是有值的 
  表达式都是有数据类型的

了解过后,我们先看以下几种运算符:

(1):算术运算符:+,-,*,/,%

        其中/为除运算符,---如果是两个整型数相除,此时相当于是整除的效果

-----除法运算中 除数不能为 0

        %为求余运算 -----除数不能为0

-----求余运算,运算数不能是小数。必须是整数

-----结果的符号 ,取决于 左操作数 的符号

        求余运算一般有两个作用    

//1.判断 奇数 偶数

%2 == 1 奇数 
       == 0 偶数

//2.限定取值范围 %N 
     0~N-1 

(2):自增自减运算符,++,--

   int a = 1;
    a++   //后置加加  --- 先用(表达式的结果) 后加(让i自增)
    ++a   //前置加加  --- 先加(让i自增) 后用(表达式的结果) 
    
    注意: 
    1. a++ ++a如果单独使用,效果上没有区别
    2. 先用后加 或 先加后用,是参与到别的运算中时,才发挥作用
    3. 运算数,必须是一个可修改变量 
       10++ (x)

如果error: lvalue required as increment operand
       lvalue --- left value //(左值)表示需要左值

 a = 10;  //能放在= 左边的 值 左值 (eg: 变量)
       10 = a;(x) //只能放在 = 右边的 右值 (eg: 常量)

       const int a = 10; //constant  --- 常量 
                         //a其实还是个变量,但是这个变量只读(不能修改)
    可以通过后续学的地址进行操作,也可以是左值

 &a //取地址运算 --- 获取a对应内存空间的首地址 --地址编号

“浮点类型也可以自增自减”

注意?????

编译会报错

贪心法:
   从左到右逐个扫描,将字符尽可能多的结合成c语言运算符 
   
   i+++++i
   
   i ++ ++ + i //
   
   i++ ++ + i  
   
   ((i++)++) + i
 
注意:


   printf("%d %d",i,i++);//1.函数传参顺序 2.i++ 先用后加,什么时候加 --没有统一规定 
   建议:
   m = i;
   n = i++;
   printf("%d %d\n",m,n);
   总之,不要写出别人看不懂的、也不知道系统会怎样执行的程序。

(3):赋值运算符“=”

赋值符号"="就是赋值运算符,它的作用是将一个数据赋给一个变量

a = 10; //赋值运算 
        //赋值表达式
        //结果 就是a的值 
        //类型 就是a的类型 
        
a=(b=(c=10))  //可以连续赋值 


+= //赋值运算 

a += 1 // a = (a + 1)
a -= 1 // a = a - 1

(4):逗号运算(顺序求值运算符):
 ,    
 
语法:
  表达式1,表达式2,表达式3, ...,表达式n 
  
逗号运算的过程:

1+2,a++,3+4 //从左到右,挨个运算 
            //逗号运算表达式的结果 --- 是整个式子中最后一个表达式运算的结果  
for(sum = 0,i =0,j = 0;2;3)

输出b=7,a=2

三:隐式类型转换

  从右向左 --- 必转 
  从下向上 --- 低精度向高精度转 

四:不同类型的数据间混合赋值 


   高精度 => 低精度   --- 精度丢失 
   长类型 => 短类型   --- 高位截断 
   短类型 => 长类型   --- 短类型是否有符号  
                          无符号 ---补0
                          有符号 ---符号位扩展 

int a='abcd';格式不对,编译会有警告,会被识别成16进制0x61626364

%d:输出它的10进制1,633,837,924

%c:输出d ,高位截断

%#x:输出0x61626364

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值