zoukankan      html  css  js  c++  java
  • C89:论符号

    一.简介

    C运算符总共有13种:

    1.算术运算符:* - + /

    2.关系运算符:> < == != >= <=

    3.逻辑运算符:! && ||

    4.位运算符:<< >> ~ | ^ &

    5.赋值运算符:= 及扩展赋值运算符

    6.条件运算符:?:(C语言中唯一的三目/三元运算符)

    7.逗号运算符:,

    8.指针运算符:* &

    9.求字节运算符:sizeof

    10.强制类型转换运算符:(类型)

    11.分量运算符:->

    12.下标运算符:[]

    13.其他:如函数调用运算符

    二.算术运算符

    三.关系运算符

    四.逻辑运算符

    五.位运算符

    (1)左移(<<)右移运算(>>)

    (2)异或运算(^)

    (1) & 位操作符

    int fun(int value)
    {
      int cnt = 0;
      while(value)
      {
        cnt++;
        value = value & (value - 1);
      }      
      return cnt;
    }
    
    void main(void)
    {
      printf("%d", fun(65535));
    }

    三.浮点数

    合法的浮点数有两种表示形式:
        (1) 十进制小数形式。他有数字和小数点组成,必须有小数点。例如(123.)(123.0)(.123)。
        (2) 指数形式。如123e3。字母e(或E)之前必须有数字,e后面的指数必须为整数。

    规范化的指数形式里面,小数点前面有且只有一位非零的数字。如1.2345e8

    四.变量

    1.16位编译器

    char :1个字节

    char*(即指针变量): 2个字节

     short int : 2个字节

    int: 2个字节

    unsigned int : 2个字节

    float: 4个字节

    long: 4个字节

    unsigned long: 4个字节

    double: 8个字节

    long long: 8个字节

    2.32位编译器

    char :1个字节

    char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)

    short int : 2个字节

    int: 4个字节

    unsigned int : 4个字节

    float: 4个字节

    long: 4个字节

    unsigned long: 4个字节

    double: 8个字节

    long long: 8个字节

    3.64位编译器

    char :1个字节

    char*(即指针变量): 8个字节

    short int : 2个字节

    int: 4个字节

    unsigned int : 4个字节

    float: 4个字节

    long: 8个字节

    long long: 8个字节

    double: 8个字节

    unsigned long: 8个字节

    五.%(求余)

    %(求余)要求两边都是整型

    六.<<(左移) >>(右移)

    位运算中操作符左移一位表示乘以2,操作符右移一位表示除以2

    七.||(逻辑与)

    int i=0,a=1,b=2,c=3;
    i=++a||++b||++c;
     
    //i=1
    //a=2
    //b=2
    //c=3
    

    八.操作符Sizeof()

    1.结构体

    16位机子的编译器无内存对齐

    2.数组

    char s[]="12345";
    cout<<sizeof(s)<<endl;  //输出6
     
    char s[100];
    cout<<sizeof(s)<<endl;    //输出4
    

    3.指针

    char* s="12345";
    cout<<sizeof(s)<<endl; //输出4
     
    void* p=malloc(100);
    cout<<sizeof(a)<<endl;  //输出4
    

    4.变量

    九.[]和*

    char* a[10];  //[]的优先级高于*,所以这是一个指针数组,并不是一个指针变量指向的数组
    
  • 相关阅读:
    电力基本知识
    .net图表工具汇总
    最重要的十年做什么才不浪费?
    花10分钟看一看少走30年弯路
    给明年依然年轻的我们
    Qt经典—线程、事件与Qobject
    C#源码500份
    .NET 性能优化方法总结==转
    qt +ChartDirector 绘制图表
    创业者,你为什么这么着急?
  • 原文地址:https://www.cnblogs.com/k5bg/p/11112532.html
Copyright © 2011-2022 走看看