C语言基础序章

目录

  • C语言基础
    • 1.转义
    • 2.运算符
    • 3.表达式
    • 4.隐式类型转换
    • 5.不同类型的数据间混合赋值

正文

 1.转义字符
   'n'    //字符 n 
   '\n'   //转换含义 --- 表示换行 
   '\t'   //调到下一个制表符  --- 制表符的宽度 8个字符
   '\b'   //退格 
   '\r'   //回车 --效果是光标回到本行开头

2.运算符 

算术运算符

+ - * 
 / 
 % 
 ++ 
 -- 

赋值

int a;
a = 10; //赋值运算    //赋值表达式

a=(b=(c=10))  //可以连续赋值 

放左边的称为左值,右边的为右值

localtion able value // 可定位的     ---- 可定位的 左值   --- 变量 
                                                 不可定位 右值   --- 常量 表达式 
       &a //取地址运算 --- 获取a对应内存空间的首地址 --地址编号        

类似常数等是属于匿名变量,不可用&读取地址值

字符赋值:char ch = ‘ A ’          char ch = '\065'   (八进制)        char ch = 'x41'(十六进制)

3.表达式

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

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

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

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

i++ 与 ++i的存储形式,++ i 效率更高

i++占用两块区域,先用i值,再自增(所以需要第二块区域存贮 i++本身表达式的值)

++i占用一块区域,先自增,再用izhi

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

5.不同类型的数据间混合赋值

精度转换,多类精度运算,结果为最高精度。

高精度 => 低精度   --- 精度丢失 

低精度 => 高精度------数据正常

长类型 => 短类型   --- 高位截断 

短类型 => 长类型   --- 短类型是否有符号  
                                无符号 ---补0
                               有符号 ---符号位扩展 


总结

1.注意char型的三种赋值方式:

char ch = ‘ A ’          char ch = '\065'   (八进制)        char ch = 'x41'(十六进制)

求余符号%两侧都只能是整数 10%3 (正确)      5.5%2(错误)

2.计算复杂表达式注意=运算符的优先级

3.精度转换,多类精度运算,结果为最高精度。

short ====> int

短类型 => 长类型   --- 短类型是否有符号  
                                无符号 ---补0
                               有符号 ---符号位扩展 

short  1 000 0000 0000 0001(第一个1符号位)

int 1111 1111 1111 1111 1000 0000 0000 0001(前面多出来的2个字节全部补符号位1)

4.        int = ‘ abcd’   //0x61626364     存放的是ASCII码值

           int = ‘abcdef’  //0x63646566   四字节只够存放后四位cdef码值,既高位截断

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值