C语言 - 操作符(简单介绍)第二期

先赞再看,养成习惯!!!你的支持是对我最大帮助!


操作符

操作符
算术操作符
移位操作符
位操作符
赋值操作符
单目操作符

单目操作符

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

用法

#include<stdio.h>
// !  -   +
 int main()
 {
    int a = -2; // 负号
    int b = +10;// 通常正号省略
    int c = 0;
    printf("%d\n",a); // 输出 -2
    printf("%d\n",b); // 输出 11
    printf("%d\n",!b);// 输出 0 (10为真,非真为假)
    printf("%d\n",c);;// 输出 0 
    printf("%d\n",!c);// 输出 1 (0为假,非假为真)
    //在C语言中 0 为假,其他数为真
    return 0;
 }
#include<stdio.h>
#include<string.h>

// sizeof()
int main()
{
    int sz = 0;

    int a = 1;
    //sizeof 计算的是变量/类型所占空间大小,单位为字节
    printf("%d\n",sizeof(a));  // 输出 - 4
    printf("%d\n",sizeof(int));// 输出 - 4

    int arr[10] = {0};
    printf("%d\n",sizeof(arr));// 输出 - 40   输出的是字节总大小
    //10*sizeof(int) = 40

    //计算数组的元素个数
    //个数 = 数组总大小/每个元素的大小
    sz = sizeof(arr) / sizeof(arr[1]);
    printf("%d\n",sz);
    return 0;
}
#include<stdio.h>
// ~ -- 按位取反(二进制)
int main()
{
    int a = 0;  // 4个字节 -- 32比特位
    int b = ~a; // b是有符号的整形(如果是一个有符号的整形,最前面的一位是符号位,0为正,1为负 )
    // ~ -- 按位取反(二进制)
    // 1变0,0变1
    //  a  -二进制-> 00000000000000000000000000000000
    // ~a  -二进制-> 11111111111111111111111111111111
    //原码、反码、补码
    //负数在内存中储存的时候,储存的是二进制的补码
    // 11111111111111111111111111111111    补码
    // 补码减1,得到原码
    // 11111111111111111111111111111110    反码
    // 符号位不变,其他位按位取反
    // 10000000000000000000000000000001    原码
    printf("%d\n",b);// 输出 -1
    // 我们使用的、打印的是这个数的原码

    return 0;
}
#include<stdio.h>
// ++
int main()
{
    int a = 10;
    int b = a++;//后置++,先使用,再++
    printf("a = %d  b = %d\n",a,b);     // 输出 a = 11  b = 10
    a = 10;
    int c = ++a;//前置++,先++,再使用
    printf("a = %d  c = %d\n",a,c);     // 输出 a = 11  b = 11
    return 0;
}
#include<stdio.h>
// --
int main()
{
    int a = 10;
    int b = a--;//后置--,先使用,再--
    printf("a = %d  b = %d\n",a,b);     // 输出 a = 9  b = 10
    a = 10;
    int c = --a;//前置--,先--,再使用
    printf("a = %d  c = %d\n",a,c);     // 输出 a = 9  b = 9
    return 0;
}
#include<stdio.h>

int main()
{
    int a = 3.14; //出现警告 “从‘double’转到‘int’,可能丢失数据”
    printf("%d\n",a);// 也可能不出现警告,但会只保留整数(此输出 3)
    //如果想强制改类型,就用   (类型)
    a = (int)3.14;
    printf("%d\n",a); // 这样就不会出现警告了
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值