精华内容
下载资源
问答
  • C语言操作

    2018-04-05 22:33:47
    C语言操作:算数操作 移位操作 位操作 赋值操作 单目操作 关系操作 逻辑操作 条件操作 逗号操作 下标引用 、函数调用和结构成员

    C语言操作符有以下分类:

    算数操作符   移位操作符   位操作符   赋值操作符   单目操作符   关系操作符   逻辑操作符   条件操作符   逗号操作符   下标引用 、函数调用和结构成员

    一、算数操作符

    加(+)  减(-)  乘(*)  除(/)  求模(%)

    1)%操作符只能用于两个整数之间的运算,其他的操作符可以作用于整数和浮点数。

    2)对于/操作符,当两个操作数都是整数时执行整数除法。只要有一个操作数是浮点数就是浮点数除法。

    3)%操作符参与运算的两个整数返回的是整除之后的余数,/操作符参与运算的两个整数返回的是整除之后的商。

    二、移位操作符

    左移操作符(<<):左边抛弃,右边补0

    右移操作符(>>):1)逻辑移位--左边用0填充,右边丢弃

                                   2)算术移位:左边用原该值的符号位填充,右边丢弃

    三、位操作符

    按位与(&)  按位或(|)  按位异或(^)

    1)位操作符他们的操作数必须都是整数。

    2)参与运算的操作数,是将他们的二进制(比特位)进行逐位运算。

    3)&操作符只有当两个比特位都是1时与的结果才为1,以外均为0。

    4)| 操作符只有当两个比特位都是0时或的结果才为0,以外均为1。

    5)^操作符参与运算的是两个相同的操作数结果就会清零,任一个数与0按位异或得到的二进制序列不变,与1按位异或得到的二进制序列每位均取反。

    四、赋值操作符

    只有赋值操作符(=)可以让你改变一个你之前不满意的值。任何两个操作数参与运算时只要不经过赋值运算,这两个操作数其自身的值是不会发生变化的!

    注意:赋值运算和初始化是两个不同的概念!初始化时(int i=0;),系统会为这个变量(i)开辟空间同时默认这是空间的值(0)。而赋值运算时(i=1;),是将这个空间的值改变(将1改为0)。

    复合赋值符:+=   -=   *=   /=   %=   >>=   <<=   &=   |=   ^=  

    五、单目操作符

    逻辑反(!)  负值(-)  正值(+)  取地址(+)  求操作数的类型长度(sizeof)  对一个数的二进制数按位取反(~)  自增运算(++)  自减运算(--)  间接访问操作符、解引用操作符(*)  强制类型转换((类型))

    1)以上操作符参与运算的只需要一个操作数即可。

    2)自增操作符分为前置和后置,前置是先将值进行+1操作,然后再去用这个数。后置是先将数拿出来去使用,使用完了之后再进行+1操作。

    3)强制类型转换仅仅改变了空间的类型,并没有改变这个数据,和转化是不同的概念。

    4)切记sizeof是操作符,并不是一个函数。

    六、关系操作符

    大于(>)  大于等于(>=)  小于(<)  小于等于(<=)  相等(==)  不相等(!=)

    1)对浮点数来说要特别注意,并没有严格意义上的相等。它是用精度范围来判断两个数是相等的。

    2)执行相等操作(==)时,可能会不小心写成赋值操作(=)。例如:if(x=5)//处理事务

    因此建议做相等比较时,将常数写在左边(5==x)。例如:if(5==x)//处理事务

    这样不小心输错成if(5=x),系统就能在编译时报错

    七、逻辑操作符

    逻辑与(&&)  逻辑或(||)

    1)&&操作符前后两个操作数均为真结果才为真。

    2)|| 操作符前后两个操作数均为假结果才为假。

    3)逻辑与和按位与是不同的概念,前者的结果是布尔型,不是1(真)就是0(假),而后者是将二进制进行逐位运算的,结果是个数。

    八、条件操作符

    exp1 ? exp2 : exp3 ;

    三目运算符:当exp1为真时结果为exp2,假时结果为exp3

    类似于:if(exp1) {exp2} else {exp3}

    九、逗号表达式

    exp1,exp2,exp3,……expN

    1)逗号表达式,就是用逗号隔开多个表达式。

    2)逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。

    十、下标引用、函数调用和结构成员

    1)[ ]

    操作数:一个数组名+一个索引值

    2)( )

    函数调用操作符

    一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

    3)访问一个结构体的成员

      .  结构体 . 成员名(通过结构体直接访问内部元素)

      ->  结构体指针 -> 成员名(通过指针访问结构体内部元素)

    注意:结构体、数字、指针都属于数据类型,只不过是自定义数据类型

    展开全文
  • c语言操作

    2019-02-17 10:49:06
    C语言操作小结 通过老师的讲解还有我自己对这一部分的理解,我对这一部分做如下总结: 1.操作分类 .算术操作 .移位操作 .位操作 .赋值操作 .单目操作 .关系操作 .逻辑操作 .条件操作 ....

    :#@TOC

    C语言操作符小结

    通过老师的讲解还有我自己对这一部分的理解,我对这一部分做如下总结:

    1.操作符分类

     .算术操作符
     .移位操作符
     .位操作符
     .赋值操作符
     .单目操作符
     .关系操作符
     .逻辑操作符
     .条件操作符
     .逗号操作符 
     .下标引用,函数调用和结构成员
    

    2.具体介绍

     .算术操作符:+  -  *  /
         除了%操作符之外,其他的几个可以用于证书和浮点数。
         对于 /  操作符如果两个操作数都为整数,执行整数除法,而只要有浮点数执行就是浮点数除法。
         % 操作符的两个操作数必须为整数,返回的是整除之后的余数。
    

     .移位操作符:
          <<  左移操作符       >> 右移操作符
          左移操作符移位规则:
             1.>  逻辑移位:左边抛弃,右边补0。
             注意:整数左移一位有乘 2 的效果,左移两位乘4。
    
                  int num = 10;
                  00000000000000000000000000001010   //num在内存中的二进制
                  00000000000000000000000000010100  //num左移一位产生生的结果
                  num <<                          //但实际上num在没被赋值的情况下,自身的值不会变化 int num = 10;
                  00000000000000000000000000001010   //num在内存中的二进制
                  00000000000000000000000000010100  //num左移一位产生生的结果
                  num <<                          //但实际上num在没被赋值的情况下,自身的值不会变化
    
         右移操作符的移位规则 :
             1.>  逻辑移位: 左边用0填充,右边丢弃。
             2.>  算术移位:  左边用该值得符号位填充。
             注意:右移一位有除二的效果;负数的符号位为1。
             例如:  求一个整数存储在内存中的二进制中1的个数。
    
    #include<stdlib.h>
    #include<stdlib.h>
    int main()
    {
        int num = 0; 
        printf("请输入一个整数:\n");
        scanf("%d",&num);
        int  i =  0;
        int count = 0; //计数
        while(num)//num只要不为0,就最少有一个1
        {
           count++;
           num = num & (num-1); // 把num中的1变为0
        }
        printf("二进制中1的个数: %d", count);
    	system("pause");
    	return 0;
    }
    
            警告 :  对于移位运算符,不要移动负数位,这个是标准未定义的。
    

       .位操作符:
        & :  按位与,有0为0,全1为1。 
         | :  按位或,有1为1,全0为0。
        ^ :按位异或,相异为1,相同为0。
        注意: 他们的操作数全为整数,都是对二进制数进行运算。
        例如:不能创建临时变量(第三个变量),实现两个数交换。  
    
         #include<stdio.h>
         #include<stdlib.h>
         int main() 
         {
               int a = 10;
               int b = 20;
               a = a ^ b;
               b = a ^ b;
               a = a ^ b;
               printf(" a=    %d     b=    %d\n", a,b);
              system("pause");
              return 0;
         }            
    

       .赋值操作符: 
           可以给自己重新赋值,也可以连续使用
        复合赋值符:
                   +=   ,   -=   
                   *=   ,   /=
                   %=   ,  >>=
                   <<=  ,  &=
                   |=   ,  ^=
         这些运算符都可以写成复合的效果,让代码更加简洁。
    

       .单目操作符:
                   !   逻辑反操作
                   -   负值
                   +   正值
                   &   取地址
              sizeof   操作数的类型长度(以字节为单位),既可以求变量,也可以求类型的大小。
                   ~   对一个数的二进制按位取反  
               --前置  先减减,再使用      
               后置--  先使用,后减减
               ++前置  同上
               后置++  同上
                    *  间接访问操作符(解引用操作符)
              (类型)  强制类型转换
    
         int a  =  (int)  3.14
    

            .关系操作符:
                       >
                      >=        
                       <
                      <=
                      !=
                      ==
    

             .逻辑操作符:
                      &&-----逻辑与,表达式为假不继续算
                      ||-----逻辑或,表达式为真不继续算                      
    

             .条件操作符:
                      exp1  ?  exp2  :  exp3
    
                       if(a>5)
                       {
                             b  =  3;
                       }                
                       else
                       {
                           b    =  -3;
                       }                         
              //转换成条件表达式为:  a  >  5  ?  3  :  -3;
    

           经典例题 :
    
                    int i = 0 , a = 0 , b = 2 , c = 3 , d =  4 ;
                    i = a ++&&++b&&d++;
                    // i = a +=||++b||d++;
                    printf("%d %d %d %d" , a ,b,c,d);
            //第一个表达式的结果为1 2 3 4;第二个表达式的输出为:1  3  3  4 。
    

        .逗号表达式:
                   exp1 , exp2 , exp3 , ... ,expn
                 1.定义:用逗号隔开表达式
                 2.结果:从左向右依次执行,整个表达式的结果是最后一个表达式的结果。
    
                  int a = 1;
                  int b = 2;
                  int c = (a > b , a = b + 10 , a , b = a + 1);  // c = 13
    

          .下标引用,函数调用和结构成员
            1.[]:操作数为一个数组名 + 一个索引值。
            2.():函数调用操作符,接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。
            3.访问一个结构的成员,分为两类: 结构体.成员名;结构体指针->成员名
    
                     struct  stu  
                     {
                           char name[10];
                           int age;
                           char id[12];
                     };
    

           这只是定义了一个结构体,不会向内存申请空间。
    
                     struct  stu  s;
                     struct  stu  *p = &s;
                     strcpy((*p).name,"张三");
                     strcpy((*p).id,"201606060501");
                     *p.age = 18;                                    
    

         指针还有另外一种简洁的方式
    
                   strcpy(p->name,"张三");
                   strcpy(p->id,"201606060501");
                   p->age = 18;
    
    展开全文
  • C语言操作总结

    2018-03-31 10:28:07
    下面对C语言操作做一个小小的总结:C语言操作具体分为算术操作、移位操作、位操作、赋值操作、单目操作关系操作、逻辑操作、条件操作、逗号表达式、下标引用、函数调用和结构成员。...

    C语言操作符是说明特定操作的符号,它是构造C语言表达式的工具。下面对C语言操作符做一个小小的总结:

    C语言操作符具体分为算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构成员。下面一一介绍:

     

    1.算术操作符。

      算术操作符包含+ -  *  /  %五个操作符。

      除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。%操作符两个操作符必须都是整数,返回的是整除之后的余数。

      对于/操作符如果两个操作符都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法,即只要有一个操作数是浮点数,就执行浮点数除法。

          

    2.移位操作符。

       移位操作符包括<<(左移操作符)  >>(右移操作符)

       <<操作符相当于给原操作数乘2>>操作符相当于给原操作数除2(据情况而定)

       <<操作符的移位规则为:左边抛弃,右边补0

       >>操作符的移位规则分为两种:1、逻辑右移:左边用0填充,右边丢弃。2、算术右移:左边用原该值的符号位填充,右边丢弃。

       注意:对于移位运算符,不要移动负数位,这个是标准未定义的。

     

    3.位操作符。

    位操作符包括&(按位与)|(按位或)^(按位异或)三种操作符。

    &操作数可以判断一个数二进制序列中1的个数。具体方法是:将这个二进制序列与1进行按位与操作,进而得到最低位是否为1(如果是1,则按位与的结果为1,;如果不是1,按位与的结果为0),再将序列向右移位,再与1进行按位与判断,如此循环32次即可。

    |操作符可以将二进制序列中的0置为1。具体方法是:将序列与要置1相对应这一位为1的序列进行按位或操作即可。

    ^操作符可以不创建临时变量,实现两个数的交换。eg:要交换a变量和b变量的值,只需a=a^b,b=a^b,a=a^b即可。

     

    4.赋值操作符。

    赋值操作符的作用是将一个表达式的值赋给一个变量。赋值操作符的右边可以使任何表达式,但左边必须是一个变量名。

    赋值操作符可以连续使用,但一般不推荐,会使代码不清晰且不易调试。

     

    5.复合赋值符。

    复合赋值符包括+=-=*=/=%=>>=<<=&=\=|==等操作符。

    这些运算符都可以写成复合的效果。eg:x=x+10x+=10效果是一样的。其他复合赋值符与+=用法相同。

     

    6.单目操作符。

    单目操作符包括!(逻辑反操作)-(负值)+(正值)&(取地址)sizeof(操作数的类型长度,以字节为单位)~(对一个数的二进制按位取反)--(前置、后置--)++(前置、后置++)*(间接访问操作符,解引用操作符)(类型)(强制类型转换)等。

    sizeof:

    sizeof操作符可以求变量(类型)所占空间的大小。

    sizeof(数组名),数组名表示整个数组,sizeof(数组名)表示的是整个数组的大小,单位是字节。当int a =0,sizeof(a)表示一个整形变量的大小,相当于sizeof(int),输出4,即4个字节。

    注意:sizeof内部的表达式是不参与运算的。

    ++运算符:

    对于前置的++来说,运算顺序是先对变量进行自增或自减运算,然后使用变量。egint a=10;int x=++a;先对a进行自增,然后对使用a,也就是表达式的值是a自增之后的值,x11

    对于后置的++来说,运算顺序是先对变量进行使用,再进行自增或自减运算。eg:int a=10; int x=a++;先对a使用,再增加,这样x的值是10,之后a变成11

     

    7.关系操作符。

    关系操作符包括<>>=<=!===等操作符。

    注意:要区分==(用于测试相等)=(赋值操作符)

     

    8.逻辑操作符。

    逻辑操作符包括&&(逻辑与)||(逻辑非)两个操作符。

    注意:要区分逻辑与和按位与、逻辑或和按位或。eg:1&2结果为0,1&&2结果为11|2结果为3,1||2结果为1

     

    9.条件运算符。

    条件运算符的符号为exp1?exp2:exp3。它的含义是如果exp1的结果为真,则表达式的值为exp2,否则,整个表达式的值为exp3

     

    10.逗号表达式。

    逗号表达式的符号为exp1,exp2,exp3,…expN。逗号表达式就是用逗号隔开的多个表达式。运算法则为:从左到右依次执行。整个表达式的结果是最后一个表达式的结果。

     

    11.下标引用、函数调用和结构成员。

    下标引用:

    符号位[ ]。操作数为一个数组名+一个索引值。

    函数调用操作符:

    接受一个或多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。至少会有一个操作数,即函数名。

    结构成员:

    访问一个结构的成员:. 结构体.成员   ->结构体指针->成员名。

     

     

     

    展开全文
  • C语言 操作

    2019-05-22 22:54:20
    操作分类:算数操作、移位操作、位操作、赋值操作、弹目操作关系操作、逻辑操作、条件操作。 算数操作 + - * / % 注:除了%运算符只能取整数以外,其他运算符可以计算任意类型数值。 移位...

    C语言中的操作符

    • 操作符分类:算数操作符、移位操作符、位操作符、赋值操作符、弹目操作符、关系操作符、逻辑操作符、条件操作符。
    算数操作符
         +     -    *     /    %
    

    注:除了%运算符只能取整数以外,其他运算符可以计算任意类型数值。

    移位操作符
         << 左移操作符
         >> 右移操作符
    

    (1)、左移相当于乘法,左移一位相当于乘二,即扩大两倍。
    移位规则:左边抛弃,右边补0。
    (2)、右移相当于除法,num>>1即为:num/2。
    移位规则:1、逻辑移位:左边用0填充,右边丢弃;2、算数移位:左边用原该值符号位填充 ,右边丢弃。

    位操作符
      & // 按位与     | //按位或     ^ //按位异或
      注:它们的操作数必须是整数
    
    异或:相同位为0,不同则为1
    eg:     0000 1011
           ^ 0000 1101
             0000 0110
    

    例:编写代码实现,求一个整数存储在内存中的二进制中的1的个数。

    #define  _CRT_SECURE_NO_WARNINGS
    
    #include <stdio.h>
    #include <stdlib.h>
    
    //方法一
    //int count_one_bits(unsigned int value)
    //{
    //	int i = 0;
    //	int count = 0;
    //	for (i = 0;i < 32;i++)
    //	{
    //		if ((value & 1) == 1)
    //		{
    //			count++;
    //		}
    //		value = value >> 1;
    //	}
    //	return count;
    //}
    
    //方法二
    int count_one_bits(unsigned int value)
    {
    	int count = 0;
    	while (value != 0)
    	{
    		count++;
    		value = value & (value - 1);
    	}
    	return count;
    }
    
    int main()
    {
    	int ret = 0;
    	unsigned int value = 0;
    	scanf("%d", &value);
    	ret=count_one_bits(value);
    	printf("%d\n", ret);
    	system("pause");
    	return 0;
    }
    
    赋值操作符
    (1)复合操作符
    +=   -=   *=   /=   %=   >>=   <<=   &=   |=   ^=   
    
    (2)单目操作符
    !   -   +   &   sizeof   ~   --   ++   *   (类型)
    

    1、~:对一个数的二进制按位取反
    2、sizeof:求变量或类型所占空间的大小,编译期间确定类型大小,但不参与运算。
    3、–和++运算符分为前置与后置,前置为先自增或自减,后置相反。

    关系运算符
    >   >=   <   <=   !=   ==
    
    逻辑操作符
    && //逻辑与
    || //逻辑或
    

    注:或和与都分为两种,即按位和逻辑,其区别在于:

              1&2 =====>> 0
              1&&2 =====>> 1
    
              1|2 =====>> 3
              1||2 =====>> 1
    
    条件操作符
          exp ? exp2 : exp3
    
    展开全文
  • C语言操作详解

    2019-10-18 23:22:57
    C语言操作详解 操作的分类: 算术操作 移位操作 位操作 赋值操作 单目操作 关系操作 逻辑操作 条件操作 逗号操作 下标引用,函数调用和结构成员 算数操作: + - * / % 注意点: 1.除了%...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,115
精华内容 446
关键字:

c语言关系符

c语言 订阅