操作符简述

单目操作符

 sizeof操作符

sizeof是用来计算类型和数组的大小的(单位是字节)

接下来是代码例子,我们先写一个计算整数类型的字节大小,代码如下

#include <stdio.h>
int main()
{
    int a = 10;
    printf("a字节的大小是:%d\n", sizeof(a));
    return 0;
}

按ctrl+F5运行结果如下

 再来一个计算数组大小的例子

#include <stdio.h>
int main()
{
    int arr[] = {1,2,3,4,5,6};
    printf("数组arr的字节大小是:%d\n",sizeof(arr));
    return 0;
}

 结果如下

当我们得知了数组的字节大小时,我们就可以得知数组里面有几个元素。代码如下

#include <stdio.h>
int main()
{
    int arr[] = {1,2,3,4,5,6};
    printf("数组里面元素个数是:%d\n",sizeof(arr)/sizeof(arr[0]));
    return 0;
}

结果如下

~操作符 

~操作符的作用是(按位(二进制)取反)

直接整代码

#include <stdio.h>
int main()
{
    int a = 0;
    int b = ~a;
    printf("b的结果是%d\n",b);
    return 0;
}


 

 

结果为啥是-1呢,这就涉及到了原码,反码,补码的知识了。

++操作符

++操作符分为前置++和后置++

前置++ (作用先++,再使用)就是a的值先加1,然后得出的值再赋给b

#include <stdio.h>
int main()
{
    int a = 10;
    int b = ++a;
    printf("a=%d\n",a);
    printf("b=%d\n",b);
    return 0;
}

 后置++(先使用,再++)就是先把a的值赋给b然后a在++

#include <stdio.h>
int main()
{
    int a = 10;
    int b = a++;
    printf("a=%d\n",a);
    printf("b=%d\n",b);
    return 0;
}

 --操作符

--操作符分为前置--和后置--

前值--(先--,在使用)就是a的值先-1,然后再把得到值赋给b

#include <stdio.h>
int main()
{
    int a = 10;
    int b = --a;
    printf("a=%d\n",a);
    printf("b=%d\n",b);
    return 0;
}

后值--(先使用 ,再--)就是先把a的值赋给b,然后a在-1 

#include <stdio.h>
int main()
{
    int a = 10;
    int b = a--;
    printf("a=%d\n",a);
    printf("b=%d\n",b);
    return 0;
}

可以看出不管是++还是--,前置的结果都是一样的。

(类型)强制类型转换

当我们使用整数类型(int)定义了一个变量(a)然后我们给a赋值3.14,(正常情况下a应该被赋值整数)这显然是不合理的,但当我们使用(int)这样的操作符,强制转化成了整数类型。代码如下

#include <stdio.h>
int main()
{
  int a = (int)3.14;
    printf("%d\n",a);
    return 0;
}

 逻辑操作符

 &&逻辑与

在c语言中数字0表示假,非0表示真

&&的作用就是对于给定的数,只要有一个是0,那么最终显示的结果就是0,只有给定的数都是都是非0,结果才是1 ,代码如下

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 1;
    int c = a && b;
    printf("c=%d\n",c);
    return 0;
}

 ||逻辑或

对于给定的值,全是0,结果才显示0,反之,结果就是1,代码如下

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 1;
    int c = a || b;
    printf("c=%d\n",c);
    return 0;
}

 条件操作符 exp1 ? exp2 : exp3

如果exp1?为真,则执行exp2.若为假执行exp3

#include <stdio.h>
int main()
{
    int a = 10;
    int b = 20;
    int max = (a > b ? a : b);
    printf("max=%d\n",max);
    return 0;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值