20150527运算符表达式

来源:互联网 发布:淘宝流量和访客怎么刷 编辑:程序博客网 时间:2024/05/21 18:38

//

//  main.c

//  IOS15027_express

//

//  Created bypengjunlong on 15/5/27.

//  Copyright (c) 2015 pengjunlong. All rights reserved.

//


#include <stdio.h>



//********************

//*                  *

//*   运算符与表达式   *

//*                  *

//********************


/**********************************

 *表达式:由运算符、常量、变量构成的式子;

 *  a+b    4+5+a   a*(3+f)

 *  表达式有确定的值与类型

 **********************************/


//自增自减运算符:++ --

// int main(int argc, const char * argv[]) {

//     int a = 10;

//     printf("a = %d\n",a++);          //先运算表达式的值,a的值再加1

//     printf("a = %d\n",a);

//     printf("a = %d\n",++a);          //先将a的值加1,再计算表达式的值

//     

//     int b = 20;

//     printf("b = %d\n",b--);

//     printf("b = %d\n",b);

//     printf("b = %d\n",--b);

//     

//     int c = 30;

//     printf("value = %d\n",(c++ + c--));//同一个表达式中不可以改变一个变量多次

//     return 0;

// }

//=========================================================================


// 算术运算符:* / % + -

//int main(int argc, const char * argv[])

//{

//    int a = 10;

//    int b = 20;

//    printf("a+b = %d\n",a+b);

//    printf("a-b = %d\n",a-b);

//    printf("a*b = %d\n",a*b);

//    printf("a/b = %d\n",a/b);

//    printf("a%%b = %d\n",a%b);

//}

//=========================================================================


//关系运算符:> >= < <= == !=

//表达式成立值为1,表达式不成立值为0

// int main(int argc , const char * argv[])

//{

//    int a = 30;

//    int b = 20;

//    printf("a>b = %d\n",a>b);

//    printf("a>=b = %d\n",a>=b);

//    printf("a<b = %d\n",a<b);

//    printf("a<=b = %d\n",a<=b);

//    printf("a==b = %d\n",a==b);

//    printf("a!=b = %d\n",a!=b);

//}

//=========================================================================


//逻辑运算符:!(逻辑非),&&(逻辑与),||(逻辑或)   优先级:!> && > ||

//***** !真值表 **********

//*  表达式     !表达式   *

//*                  *

//*                  *

//***********************


//*****  &&真值表  ***************

//*   a           b     a&&b    *

//*                        *

//*                        *

//*                        *

//*                        *

//*******************************

//结论:只有在所有表达式都位真的情况下整个表达式的值才为真,只要有一个表达式为假则整个表达式为假


//*****  ||真值表  ***************

//*   a           b     a&&b    *

//*                        *

//*                        *

//*                        *

//*                        *

//*******************************

//结论:只有在所有表达式都为假的情况下整个表达式的值才为假,只要有一个为真,整个表达式就为真

//int main(int arg, const char *argv[])

//{

//    int a = 10;

//    int b = 0;

//    int c = 20;

//    int d = 0;

//    printf("value = %d\n",!a);

//    

//    printf("value = %d\n",a&&b);

//    printf("value = %d\n",a&&c);

//    

//    printf("value = %d\n",a||b);

//    printf("value = %d\n",a||c);

//    printf("value = %d\n",b&&d);

//

//    return 0;

//}

//=========================================================================


//条件运算符(三目运算符): ?:

//条件表达式?表达式1:表达式2

//首先判断条件表达式是否成立,如果成立整个表达式的值就是表达式1的值,否则是表达式2的值。

//int main(int arg, const char * argv[])

//{

//    int a = 10;

//    int b = 20;

//    int c = 40;

//    printf("Max = %d\n",a>b?a:b);

//    printf("Max = %d\n",(a>b?a:b)>c?(a>b?a:b):c);

//    printf("Min = %d\n",(a<b?a:b)<c?(a<b?a:b):c);

//    return 0;

//}

//=========================================================================


// 赋值运算符:= *= /= += -= %=

//int main(int arg , const char *argv[])

//{

//    int a = 10;     //初始化,在定义变量的同时,给变量一个初值

//    int b;

//    b = 20;         //赋值,先定义,后赋值。

//    printf("a = %d\n",a*=10);//a = a*10;早期的编译器生产的汇编语言a = a*10会比a*=10生产的汇编语言多几行,

//                             //a*=10效率高

//    printf("a = %d\n",a/=10);//a = a/10;

//    printf("a = %d\n",a+=10);

//    printf("a = %d\n",a-=10);

//    printf("a = %d\n",a%=3);

//    

//    return 0;

//}

//=========================================================================


// 逗号运算符:,

//表达式1,表达式2,表达式3,...,表达式n;

//整个表达式的值就是表达式n的值,从表达式1算到表达式n;

//int main(int arg,const char *argv[])

//{

//    int a = 10;

//    int b = 20;

//    int c;

//    printf("value = %d\n",(c=a+b,a-b));

//    printf("value = %d\n",(a++,b++,a+b));

//    return 0;

//}


//****** 运算符优先级(由高到低) **************

//*    括号

//*    单目运算符(! ++ --

//*    算术运算符(/ * % 大于+ -

//*    关系运算符(> >= < <= 大于== !=

//*    逻辑运算符(&&大于||

//*    条件运算符(?:

//*    赋值(= /= *= += -=

//*    逗号运算符(,

//***************************************

//可以通过加括号来提升优先级


//scanf printf的用法

//int scanf(const char *format,...)

//int main(int arg , const char *argvp[])

//{

//    int a;

//    int b;

//    scanf("%d##%d",&a,&b);//&取地址符;最后一个占位符与双引号之间不要加任何东西,否则会造成输入阻塞,一直等待输入

//    printf("%p,%p\n",&a,&b);

//    printf("%d,%d\n",a,b);

//    return 0;

//}


//=========================================================================


//********************

//*                  *

//*   强制类型转换     *

//*                  *

//********************

//只有在相同类型下才能进行运算

//int main(int arg,const char *argv[])

//{

//    int a = 10;             //00000000 00000000 00000000 00001010

//    char b = 20;            //00000000 00000000 00000000 00010100

//    //正数位扩展,高位补0       ----------------------

//    //                      = 00000000 00000000 00000000 00011110

//    printf("a+b = %d\n",a+b);//隐式转换

//    

//    int c = 6;              //00000000 00000000 00000000 00000110

//    char d = -5;            //11111111 11111111 11111111 11111011

//    //对于负数位扩展,高位补1.   ------------------------------------

//    //                       =00000000 00000000 00000000 00000001

//    printf("c+d = %d\n",c+d);//隐式转换

//    

//    int num = 10;

//    float f = 3.14;

//    printf("%f\n",num+f);   //隐式转换,int提升为float

//    

//    printf("%d\n",(int)(num+f));//显示转换(强制类型转换),发生两次转换

//    printf("%d\n",(num+(int)f));//发生一次转换

//    

//    //----------------------------------------------------------

//    int intA = 0x2345;

//    char chB;

//    chB = intA;             //发生位截断,高24位丢弃

//    printf("intA = 0x%x\n",intA);

//    printf("chB = 0x%x\n",chB);

//    

//    return 0;

//}

//  char short int long longlong

//  float double long double

//  1.char shortint看齐

//  2.char short int long longlong看齐

//  3.整型向浮点型看齐

//  4.float double long double看齐

int main()

{

    float a = 3.14;

    int b;

    b = (int)a%2;//浮点类型数据不能进行取模

    printf("%d\n",b);

    return 0;

}

0 0
原创粉丝点击