c语言学习收获

1. C语言数据类型
   基本类型
        整型 :存整数的 
            int  short long
            (unsigned) int
        字符型
          (unsinged)char
        实型(浮点型) : 存小数
            单精度实型号float
            双精度实型 double
   构造类型
        数组类型
        结构体 struct
        联合  union
        枚举  enum
   指针类型
        *
   空类型(void)
  
 1.1. 常量与变量
    (1) 常量:在程序运行期间,其值不能被改变的量称为常量。
          符号常量
          const
    (2) 变量: 变量代表内存中具有特定属性的一个存储单元,它用来存放数据(这个数据就是变量的值),在
              程序运行期间,这些值是可以改变的。
             
              变量类型  变量名;
        变量名, 实际上是一个以一个名字对应代表一个地址,在程序编译时由编译系统给每一个变量名分配对应的内存地址。
       
        a: 从变量中取值, 实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据;
        b:  给变量赋值,实际是是通过变量名找到相应的内存地址,把数值存储到该内存地址中去。
             
        标识符(指变量名,函数名,标号等): 由字母、数字、下划线组成,且第一个字符必须为字母或下划线。   
                
                
 1.2 整型数据
    整型常量 : 十进制数, 八进制数(以0开头), 十六进制(0x)  
   
    整型变量: 整型数据在内存中是以二进制补码形式存放的。
      signed  : int , short , long.  最高位是符号位,1 代表负数, 0代表是非负数
      unsigned : unsinged int , unsigned short ,unsigned long。 所有bit位都是数值位。
     
      13 / -13在内存中的实际存放情况。
     
      在CPU内部是没有符号位的概念的,对于CPU来说,所有位都是数值位,都参与运行运算,
      至于是正数还是负数,由编译器词义决定(看编译器怎么解释,实际上就是看编译器把它当
      作是有符号数还是无符号数)。
     
     
      //(不同的编译器,长度不同)
     // short  2bytes
      //int 4bytes
     // long 4bytes
     
      整数赋值: C标准建议
      short 赋值给 int : (有符号数 短->长)
        低字节直接拷贝,高位补符号位 (符号位扩展)
    
     unsigned short  赋值给 unsigned int  :(无符号数 短->长)
        低字节直接拷贝,高位补0
      
     int 赋值给 short (signed ,unsinged 长->短) 
        只拷贝低字节
  1.3 字符数据
        char /unsigned char 字符类数据在计算机中是以ASCII码的二进制来存储。
        ASCII码: 给每一个字符(比如'A', '0', ...) 取一个整数来表示它,那么这个整数就是所谓的ASCII码       
       
        char/unsigned char  也是一个整型。占一个字节。
       
        char c = 'A' ;  //‘’引用单个字符。 'A'  
                      // "" 字符串
 
  1.4 浮点数据   “存储”  
            float   32bits
            double  64bits
             
        浮点型数据的“存储”,请看 图示。
       
 1.5 变量赋值(及赋初值)
 
    int a ; //定义语句
   
    int a = 5; //定义并赋初值语句
      《=》 int a;
            a = 5;
       
2    运算符。
  (1) 算术运算符 + - * / %, ++ --
      %求余运算符,要求操作数都必须为整数。
      根据运算符要示的操作数的个数,我们可以把运算符归为以下三类:
      双目运算符,
      单目运算符,
      三目运算符,
       
          ++自增运算符,把自己的值加1
        
          a++  表达式值为a, 做完这个表达式后a  =  a + 1
         
          ++a  表达式值为a+1, 做完这个表达式后a = a + 1
         
          --自减运算符,把自己的值减1
          a--  表达式值为a,做完这个表达式后a = a -1
          --a   表达式值为a-1, 做完这个表达式后a = a - 1
       
     
  (2) 关系运算符 >  >=  < <= == !=
  (3) 逻辑运算符 && || !
  (4) 位运算符
  (5) 赋值运算符 =
     
      a = 5
      赋值运算是把右边表达式的值,写入到左边那个东西对应的存储单元中去。
     
      赋值运算符要求:
      两个操作数必须属于同一类型(或兼容类型, 兼容类型是指可以转换的类型)  ;
      赋值运算符左边的操作数必须要对应一个可写的存储单元。(变量)
      3 + 5  = a ;  (错的)
    
     复合的赋值运算符(算术运算符,位运算符与=连接)
      +=, -=, *= /= ,....
      <<=, .....
      a+=5 <=> a = a + 5;
    
      x *=  3 + 5 <=> x = x * (3 + 5)
     
      赋值表达式
       a = 5
      赋值表达式的值为:赋值后左边那个变量的值
        a = 3 + 5 * 6  这是一个赋值表达式,而这个赋值表达式的值就是最后a的值
     
     
  (6) 条件运算符
  (7) 逗号运算符
      表达式1,表达式2
      求解过程:
        先算表达式1,再算表达式2,
        最后这个逗号表达式的值是表达式2的值
        
         扩展逗号表达式:
         表达式1, 表达式2, ...., 表达式n
        求解过程:
          先算表达式1,再算表达式2, ...,最后算表达式n,
          整个逗号表达式的值为表达式n的值。
     
  (8) 指针运算符
  (9)求字节运算符  sizeof
  (10) 强制类型转换运算符 (int)
        (类型B)(表达式A)
        把表达式A的值强制转换为类型B
       
  (11) 分量运算符 (. ->)
  (12) 下标运算符 []
  (13) 其他(如函数调用运算符)
 
3. 表达式
  表达式一个某某意思的式子。
  在C语言中,表达式是指用运算符连接其操作数的式子,叫表达式。
    a + b 
   算术表达式,就是由算术运算符连接的表达式,叫做算术表达式。
   a + b * 5 - 7
  
   a = 6 + 5 (赋值表达式,)
  
  
  
   表达式的值。
   任何一个表达式,都会有一个值。
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值