鹏哥C语言17---操作符

//-----------------------------------------------------------------------------------------------------10.操作符

//----------------------------------------------------------------------------------------- 10.1 算数操作符
// + - * / %(取模)

#include <stdio.h>

//int main()
//{
//    int a = 7 / 2;
//    printf("%d\n", a);  //输出 商 3
//    int b = 7 % 2;
//    printf("%d\n", b); //输出 余 1
//    
//    //为什么不能输出3.5?
//    //除号两端都是整数时,执行的是整数除法,如果两端只要有一个浮点数就能执行浮点数除法
//    //  取模  操作符的两端必须为整数
//
//    float c = 7 / 2.0;
//    printf("%f\n",c); //输出结果 3.50000
//    printf("%.1f\n", c); //输出结果 3.5
//    printf("%.2f\n", c); //输出结果 3.50
//    //  %d  打印浮点数
//
//    return 0;
//}

//-------------------------------------------------------------------------------------------- 10.2 移位操作符
// 左移操作符<<    右移操作符>>
//涉及二进制运算,后边再讲


//-------------------------------------------------------------------------------------------- 10.3 位操作符
//  &    ^     |
//  后边讲

//-------------------------------------------------------------------------------------------- 10.4 赋值操作符
//  =   +=    -=    /=     &=    ^=   |=     >>=     <<=

//int main()
//{
//    int a = 0;//初始化
//    a = 20; //赋值
//    a = a + 3;//a=23
//    a += 3;//a=a+3=23
//    a -= 3;//a=a-3=17
//    return 0;
//}


//-------------------------------------------------------------------------------------------- 10.5 单目操作符
// 只有一个操作数的操作符
// ! 逻辑反操作
// -   负值
//+   正值
// &  取地址(不讲)
// sizeof   取操作数的类型长度,以字节为单位
// ~  对一个数的二进制位取反(不讲)
// -- 前置,后置--
// ++ 前置,后置++
// * 直接访问操作符(解引用操作符)
// (类型) 强制类型转换


//--------------------------------------------------------------------------取反 !
//int main()
//{
//    int flag = 2;// 0为假,flag为假
//    if (!flag)// !取反逻辑,也就是  如果flag为真, 则输出hehe
//    {
//        printf("hehe\n"); 
//    }
//
// ----------------------------------------------------------------------------负值-
//    int a = -10;
//    int b = -a;
//    printf("b=%d\n",b); //输出b=10
//
// 
// ----------------------------------------------------------------------------sizeof
//    int c = 10;
//    printf("%d\n",sizeof(c)); //输出4
//    printf("%d\n",sizeof(int)); //输出4
//    printf("%d\n", sizeof c ); //输出4
//    //printf("%d\n", sizeof int );  错误
//
//sizeof 计算数组的大小
//    int arr1[10] = { 0 };
//    printf("%d\n", sizeof(arr1)); //输出 40   计算整个数组的大小,单位是字节
//    //一个整型四个字节        一共十个元素,一个元素四个字节,一共40个字节
//    printf("%d\n",sizeof(arr1[0])); //输出 4
//    printf("%d\n",sizeof(arr1)/sizeof(arr1[0])); //输出10----------------数组的元素个数
数组的元素个数为10
数组总大小为 40字节
//
//    return 0;
//}

//--------------------------------------------------------------------   前置 后置  --  ++
//int main()
//{
//    int a = 10;
//    int b = a++; //后置++  ,先使用,后++  (b先使用a的值,a 的值再+1)
//     int b=a; a=a+1
//    printf("b=%d\n",b);     //输出10
//    printf("a=%d\n", a);//输出11
//    int c = ++a;//前置++,先++,再使用(a先+1,c再使用a++后的值)
//    printf("a=%d\n", a);//输出12
//    printf("c=%d\n", c);     //输出12
//    int d = a--;//后置a--, 先使用,后--
//    printf("d=%d\n", d);     //输出d=12
//    printf("a=%d\n", a);//输出a=11
//    int f = --a;//前置a--, 先--,后使用
//    printf("a=%d\n", a);//输出a=10
//    printf("f=%d\n", f);     //输出f=10
//
//    return 0;
//}


//-----------------------------------------------------------------------强制(类型)

//int main()
//{
//    int a = (int)3.14; //   (int)   让3.14强制变为整型,也就是只取整数部分
//    printf("%d\n",a);//输出3
//
//    return 0;
//}


//-------------------------------------------------------------------------------------------- 10.6 关系操作符
//  >
//  >=
//  <
//  <=
//  !=
//  ==  用来判断等

//-----------------------------------------------------------------------  ==
//int main()
//{
//    int a = 10;
//    
//    if (a = 3)//赋值
//    {
//        printf("hehe\n");//输出 hehe
//    }
//
//    int b = 4;
//    if (b == 3)// 如果 b=3 为真,打印,如果 b=3 为假,不打印
//    {
//        printf("hehe\n");//没有输出
//    }
//
//    return 0;
//}

//-------------------------------------------------------------------------------------------- 10.7  逻辑操作符
// && 逻辑与--并且
//  | |   逻辑或--或者

//int main()
//{
//    int a = 10;
//    int b = 20;
//    int c = 0;
//    int d = 0;
//
//    //-----------------------------------------------------------------------------------------&&
//    if (a && b)//如果 a 为真且 b 为真,则打印,有一个不为真就不打印
//    {
//        printf("hehe\n");//输出  hehe   a.b皆为真(不为0)
//    }
//    if (a && c)//如果 a 为真且 c 为真,则打印,有一个不为真就不打印
//    {
//        printf("yaya\n");//不输出   c=0,为假
//    }
//    
//    //----------------------------------------------------------------------------------------- ||
//    if (a || b)//如果 a 为真或者 b 为真,则打印,
//    {
//        printf("hehe\n");//输出  hehe   a.b皆为真(不为0)
//    }
//
//    if (a || c)//如果 a 为真或 c 为真,则打印
//    {
//        printf("yaya\n");//输出   yaya,a为真
//    }
//
//    if (b || c)//如果 b 为真或者 c 为真,则打印
//    {
//        printf("lele\n");//输出  lele,b为真
//    }
//
//    if (c || d)//如果 c 为真或者 d 为真,则打印
//    {
//        printf("keke\n");//不输出   c=0,d=0 ,二者皆为假,不打印
//    }
//
//    return 0;
//}


//-------------------------------------------------------------------------------------------- 10.8 条件操作符
// exp1 ? exp2 : exp3  --------------------------三目操作符(有三个操作数)
//  真          √         ×    输出exp2
//  假          ×         √    输出exp3

//int main()
//{
//    int a = 10;
//    int b = 20;
//    int c = 100;
//    //------------------------------------------------------------------------------------求两个数较大值
//    int r1 = a > b ? a : b;  //a>b为假,输出后值
//    int r2 = c > b ? c : b;  //c>b为真,输出前值
//    printf("%d\n", r1);
//    printf("%d\n", r2);
//
//    return 0;
//}


//-------------------------------------------------------------------------------------------- 10.9 逗号表达式
// 逗号隔开的一串表达式,
// 特点是,从左向右依次计算,整个表达式的结果是最后一个表达式的结果
// exp1, exp2, exp3, ...... expN  

//int main()
//{
//    int a = 10;
//    int b = 36;
//    int c = 0;
//    int r1 = (c = a - 2, a = b + c, c + 6);
//    //               c=8          a=44        14
//    printf("%d\n", r1);//输出  14
//
//    return 0;
//}


//--------------------------------------------------------------------------------- 10.10 下标引用,函数调用和结构成员
// []  ()  .  -> 

//------------------------------------------------------------------- []  下标引用操作符

//int main()
//{
//    int arr1[10] = {1,2,3,4,5,6,7,8,9,10}; //  []不是操作符,只是定义语法的一种形式
//    printf("%d\n", arr1[3]); // [] 就是下标引用操作符, arr1 和 3就是他的两个操作数
//    int n = 5;
//    printf("%d\n", arr1[n]);// 这可以用变量n,访问元素时,下标可以用变量
//
//    return 0;
// }

//-------------------------------------------------------------------  ()  函数调用操作符

// -------------------------------------------函数求两个数相加

int Add(int x, int y)
{
    return x+y;
}

int main()
{

    //----------------------------------------------------在程序中定义两个值
    int sum1 = Add(234, 1244325); //  ()就是函数调用操作符,Add,2,3 都是()的操作数
    printf("%d\n",sum1);

    //------------------------------------------------------自己输入两个值
    int a, b;
    scanf_s("%d", &a);
    scanf_s("%d", &b);
    //scanf_s("%d%d", &a,&b);
    int sum2 = Add(a, b);
    printf("a+b=%d\n",sum2);

    return 0;
}

  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值