02 C各種演算子

13027 ワード

1、算術演算子
#include 

int main()
{
    /*
     * 1.        ?
     * + - * / %
     */
    //   
    int result;
//    result = 1 + 1;
//    int num1 = 2;
//    int num2 = 2;
//    result = num1 + num2;
//    result = num1 + 1;

    //   
//    result = 1 - 1;

    //   
//    result = 2 * 2;

    //   
//    result = 10 / 5;

    //   
    //             
    // 10   ÷ 3 = 3   1
    result = 10 % 3;
    printf("result = %i
", result); return 0; }
#include 

int main()
{
    /*
     *    :
     * 1.+ - * /
     *  + - * /    ,          ,             ,          ,             
     * 2.%
     * 2.1 %   ,       (%        )
     * 2.2 %   ,          ,          
     * 2.3 %   ,       0,       0
     * 2.4 %   ,       ,           (       ,         ,         ,         )
     */
//    double result;
//    result = 10 / 3; // 3
//    result = 10 / 3.0; // 3.333333
//    result = 10.0 / 3; // 3.333333
//    result = 10.0 / 3.0; // 3.333333
//    printf("result = %lf
", result); int result; // result = 10 % 3; // result = 10 % 3.0; // result = 10.0 % 3; // result = 2 % 3; // result = 0 % 3; // result = 10 % -3; // 1 result = -10 % 3; // -1 printf("result = %i
", result); return 0; }
#include 

int main()
{
    // 1.C                 
    // 2.C                       ,               
    // 3.          ,            
    int a = 10;
    double b = 3.14;
    //   a b    ,                 
    // a int  4   , b double  8   ,   a    
    //      a   double   
    //       res = 10 + 3.14; --> res = 10.0 + 3.4
    double res = a + b;
    //           ,         ,        double,     double
    printf("res = %lf
", res); // : ( ) int c = 10; double d = c; // // : ( ) double e = 3.14; int f = (double)e; // ( ), // : return 0; }

2、代入演算子
#include 

int main()
{
    /*
     *      
     * 1.       
     * =
     * 2.       
     * += -= *= /= %=
     */
    // 1.       
    //   :                  
    //    :     
    int num;
    num = 666;
    printf("num = %i
", num); // 2. int value = 10; // value += 5; // value = value + 5; value = 10 + 5; // value -= 5; // value = value - 5; value = 10 - 5; value *= 2; // value = value * 2; value = 10 * 2; printf("value = %i
", value); return 0; }
#include 

int main()
{
    /*
     * 1.        
     *     
     * 2.   
     *                   
     */
//    int res = 10;
//    res += 10 - 5; // res = res + (10 - 5); res = 10 + (10 - 5);
//    printf("res = %i
", res); int num = 10; num += 5; // num = num + 5; int value = 10; value += 2 + 2; // value = value + (2 + 2); int temp = 2 + 2; printf("temp = %i
", temp); return 0; }

3、自増自減演算子
#include 

int main()
{
    //        +5
    int num = 10;
//    num = num + 5;
//    num += 5;

    //        +1
//    num = num + 1;
//    num += 1;


    /*
     *     :         +1
     *   : ++
     *                 ++,          +1
     *     :         -1
     *   : --
     *                 --,          -1
     */
//    num++;
//    ++num;
//    num--;
    --num;
    printf("num = %i
", num); return 0; }
#include 

int main()
{
    /*
     *              ,          
     *           :
     *              ,                
     *              ,                
     */
    /*
    int num = 10;
//    int res = 10 + num++; // int res = 10 + 10; num++
    int res = 10 + num--; // int res = 10 + 10; num--
    printf("res = %i
", res); // 20 20 printf("num = %i
", num); // 11 9 */ int num = 10; // int res = 10 + ++num; // ++num; int res = 10 + 11 int res = 10 + --num; // --num; int res = 10 + 9 printf("res = %i
", res); // 21 19 printf("num = %i
", num); // 11 9 return 0; }
#include 

int main()
{
    /*
     *    :
     * 1.           ,           
     * 2.                 
     * 3.                   ,          C           
     *          ,                
     */
    /*
    int num = 10;
    num++;
    num--;

//    10++; //    

    int a, b;
    a = 10;
    b = 20;
    (a + b)++;
    */

    /*
    int num = 10;
//    int res = 10 + num++; // int res = 10 + 10; num++;
//    int res = 10 + num;
//    num++;
//    int value = num++;
    int value = num;
    num++;
    printf("value = %i
", value); // 10 printf("num = %i
", num); // 11 */ int num = 10; int res = ++num + ++num; // printf("res = %i
", res); return 0; }

4、sizeof演算子
#include 

int main()
{
    /*
     * sizeof   
     *   :
     *      :
     * sizeof(  /  /    );
     *      :
     * sizeof   /  
     *   :
     * sizeof            /  /            
     */
    int num = 10; // 4   
    //     
//    int res = sizeof(num);
//    int res = sizeof num;
    //     
//    int res = sizeof(3.14);
//    int res = sizeof 3.14;
    //       
//    int res = sizeof(char);
//    int res = sizeof char; //    ,     ()
    printf("res = %i
", res); return 0; }
#include 

int main()
{
    /*
     * 1.sizeof      ,       
     * 2.  sizeof      ,         
     * sizeof              
     */
    //               double int           double double          double
//    int res = sizeof(3.14 + 1); // sizeof(3.14 + 1.0) --> sizeof(4.14)
//    printf("res = %i
", res); // sizeof // sizeof 3.14 --> 8 // 1 8 + 1 == 9 // int res = sizeof 3.14 + 1; int res = sizeof(3.14) + 1; printf("res = %i
", res); return 0; }

5、カンマ演算子
#include 

int main()
{
    /*
     * 1.   C          
     * 2.  :         
     * 3.   :           ,           
     *                     
     *               
     */
    /*
    //     
    //         
    int a, b;
    //          
    a = 10, b = 20;
    */
    //   
    int a, b, c;
    a = 10, b = 20, c = 30;
    // int res = ((10 + 20), (10 + 30));
    int res = ((a + b), (a + c));
    printf("res = %i
", res); return 0; }

6、関係演算子
#include 

int main()
{
    /*
     *      
     * > >= < <= == !=
     *    :    0,    1
     * 0         1      
     *  C    0  
     *      0      ,        -1 1 666 999
     *
     *          
     *     
     *
     *    
     * > >= < <=       == !=
     *                ,         
     */
    /*
    int a, b;
    a = 10, b = 5;
//    int res = a > b;
//    int res = a < b;
//    int res = 10 == 10;
    int res = 11 != 10;
    printf("res = %i
", res); */ // int res = (10 > 5) > 3 // int res = (1) > 3 // int res = 10 > 5 > 3; // int res = 10 == (10 > 9) // int res = 10 == (1) // int res = 10 == 10 > 9; // printf("res = %i
", res); // : // int res = (20 >= 15) >= 10; // int res = (1) >= 10; int x = 15; int res = 20 >= x >= 10; return 0; }

7、論理演算子
#include 

int main()
{
    /*
     *      
     * 1.    &&
     *   :     &&    
     *   :          0   1
     *   :     
     * 2.    ||
     *   :     ||    
     *   :          0   1
     *   :     
     * 3.    !
     *   : !   
     *   :          0   1
     *   :       
     */
    /*
    //            1         2
    //         1( )         1( )
    //        10 > 5    20 > 19
//    int res = (10 > 5) && (20 > 19);
    //         0( )         1( )
//    int res = (10 > 11) && (20 > 19);
    //         1( )         0( )
    int res = (10 > 9) && (20 > 29);
    printf("res = %i
", res); // 1 0 */ /* // 1( ) || 1( ) // int res = (10 > 9) || (20 > 8); // 0( ) || 1( ) // int res = (10 > 11) || (20 > 8); // 1( ) || 0( ) int res = (10 > 1) || (20 > 28); printf("res = %i
", res); */ // !1( ) // int res = !(10 > 9); // !0( ) int res = !(10 > 19); printf("res = %i
", res); return 0; }
#include 

int main()
{
    /*
     * 1.    &&
     *    :     
     *   :     ,           ,              
     *      :     
     * 2.    ||
     *    :     
     *   :     ,           ,              
     * 3.   !
     *    :     
     *   :         
     */

    /*
    int a = 10; // 11
    //          1( )  &&  1( )
//    int res = (10 > 9) && (++a > 5);
    //          0( )   &&
    //   :                ,            ,                  ,             ,            
    int res = (10 > 19) && (++a > 5);
    printf("res = %i
", res); // 1( ) 0( ) printf("a = %i
", a); // 11 10 */ /* int a = 10; // 11 // 1( ) || // : , , , , // int res = (10 > 9) || (++a > 5); // 0( ) || 1( ) int res = (10 > 19) || (++a > 5); printf("res = %i
", res); // 1( ) 1( ) printf("a = %i
", a); // 10 11 */ /* // (!(!(!(10 > 9)))) // (!(!(!1))) // (!(!0)) // (!1) int res = !!!(10 > 9); printf("res = %i
", res); */ // : // int res = !666; // int res = !0; // int res = 666 && 888; int res = 666 && 0; printf("res = %i
", res); // 0 1 return 0; }

8、三項演算子
#include 

int main()
{
    /*
     *      
     *   :     ?   A :   B;
     *   :
     *        ,        A
     *        ,        B
     *    :
     *        ?:      
     *                 
     */

    /*
    int a, b;
    a = 10, b = 15;
    //          1( )
    //          0( )
    int res = a > b ? a : b;
    printf("res = %i
", res); */ // 15 > 10 ? 666 : 888 // 1( ) ? 666 : 888 // int res = 10 + 5 > 5 + 5 ? 666 : 888; // int res = (10 + 5 > 5 + 5) ? 666 : 888; int temp1 = 10 + 5; int temp2 = 5 + 5; int res = (temp1 > temp2) ? 666 : 888; printf("res = %i
", res); // : // 1. , 100~200 // 2. , , // 3. , , // : , // : // 1. // 2. // 3. // 4. // 5. YES, NO return 0; }
#include 

int main()
{
    /*
     // 1.         ,          100~200      
     // 2.         ,      ,        
     // 3.         ,      ,        
     */

    // 1.             
    int num = -1;
    // 2.        
    printf("       ,      
"); // 3. scanf("%i", &num); // 4. 100~200 int res = num >= 100 && num <= 200; // 5. res ? printf(" 100~200 "): printf(" 100~200 "); return 0; }
#include 

int main()
{
    //          ,      ,        

    // 1.               
    int a, b;
    a = -1, b = -1;
    // 2.          
    printf("       ,      ,      
"); // 3. scanf("%i,%i", &a, &b); // 4. , int max = (a > b) ? a : b; // 5. printf("max = %i
", max); return 0; }
#include 

int main()
{
    //          ,      ,        
    // 1.                 
    int a, b, c;
    a = -1, b = -1, c = -1;
    // 2.          
    printf("       ,      ,      
"); // 3. scanf("%i,%i,%i", &a, &b, &c); // 4. , int max = (a > b) ? a : b; // 5. max = (max > c) ? max : c; // 6. printf("max = %i
", max); int min; // , min; // return 0; }