C语言学习(第九课)粗浅认识操作符

本文详细介绍了C语言中的算术操作符、移位操作符、位操作符、赋值操作符以及单目操作符,包括除法的特性、左移和右移的二进制表示、条件判断中的布尔运算以及sizeof操作符的使用示例。
摘要由CSDN通过智能技术生成

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>
#include<string.h>

//粗浅认识操作符
//1、算术操作符,+ - * / 。
//2、移位操作符 左移操作符: << ,右移操作符: >>。
//3、位操作符, 按位与 & ,按位或 | , 按位异或  ^。
//4、赋值操作符  = += -= *= /= &= |= ^= >>= <<= 
//5、单目操作符 逻辑反操作 !,正值 + , 负值 - ,取地址 & , 操作数的类型长度(以字节为单位)sizeof ,对一个数的二进制按位取反 ~ ,前置、后置--  -- ,前置、后置++  ++ ,间接访问操作符(解引用操作符) * ,


//1、算术操作符
//int main()
//{
//    int a = 9/2;//注意,在算术操作符中需要特别注意 / 除法操作符的运算,在取整形时,如果除不尽,会余数,转而输出余数前的整数,比如9/2=4余1,此时直接输出一个4.而不是输出4.5.
//    float b = 9/2;//注意,哪怕是在单精度浮点数中进行除法运算,所得的结果也是9/2=4余1,输出的数为2.而不是9/2=4.5。除非是9/4.0才会输出等于2.5.除法运算只会根据所取的整形和数的精度来进行取值。
//    float c = 9 / 2.0;
//    printf("%d\n", a);//此处输出结果为4
//    printf("%f\n" ,b);//此处输出结果为4.000000
//    printf("%f\n", c);//此处输出结果为4.500000


//    return 0;
//}

//移位操作符
// int main()
//{
//     int a = 2;
//     int b = a << 1;//左移操作符 << 将a=2的二进制操作符向左移动一位,
//     //a在前面定义为整型,一个整形的长度为四个字节,一个字节长度为八个比特位,所以a的二进制操作符共4乘以8等于32位,而2的二进制表达为10,所以a的二进制操作符为:00000000000000000000000000000010,
//     //而b = a<<1,所以b的二进制操作符为a的二进制操作符整体向前移动一位,此时最后一位空缺,自动填补为0,所以b的二进制操作符为:00000000000000000000000000000100,100的二进制转换为10进制为4.
//     printf("%d\n", b);//所以此处的输出结果为 4,如果是左移,最后一位永远都补零,这是规定死的。


// 
//    return 0;
//}

//3、位操作符,认识一下就行,这个程序好像有点报警告。
//int main()
//{
//    int a = 0;
//    int b = 0;
//    scanf("%d\n,%d\m", &a, &b);
//    if (a > 10 | b < 11)
//    {
//        printf("20");
//    }
//    else
//    {
//        printf("30");
//    }
//    return 0;
//}

//4、赋值操作符


//int main()
//{
//    int a = 0;
//    a = a + 5;
//    a += 5;
//    a = a - 3;
//    a -= 3;
//    a = a % 3;
//    a %= 3;
//
//    //a = a + 5,a += 5 ,a = a - 3;a -= 3;a = a % 3;a %= 3;是一样的赋值。
//
//    return 0;
//}


//5、单目操作符()


//int main()
//{
//    //C语言中,0  表示为假,非0  就是真。
//    int a = 3;
//    printf("%d\n", !a);//a+b中,这个+加号有两个操作数,这叫双目操作符,!a只有一个操作数,叫做单目操作符,此处!a执行反操作,由于a=3>0为真,所以执行!a为假,输出数值为0.如果a=0为假,执行!a,则输出1。
//    if (a)//!的正确用法,if(a)为真,则执行输出aaa,
//    {
//        printf("aaa");
//    }
//    if (!a)//if(a)为假,则执行输出bbb,
//    {
//        printf("bbb");
//    }
//    //因为a=3,所以输出为aaa。


//    a = -5;//-5中的 - 在这里称为单目操作符负值。
//    a = +5;//+5中的 + 在这里称为单目操作符正值。
//    a = +a;//+a中的 + 在这里称为单目操作符正值。
//
//    return 0;
//}

//sizeof前面课程有演示,这里再次演示一下。
int main()
{
    //sizeof是一个操作符
    // 不是一个函数,函数的括号是无法省略的。
    //用来计算整形或变量的大小
    //int a = 10;
    //printf("%d\n", sizeof(int));
    //printf("%d\n", sizeof (a));//求变量的时候此处的括号可以省略。
    //10*4=40(数组内10个元素,每个元素是一个整形,一个整形是四个字节。)
    int arr[10] = { 0 };
    printf("%d\n", sizeof(arr));//计算的数组总大小。单位是字节。
    printf("%d\n", sizeof(arr[0]));//4
    int sz = sizeof(arr) / sizeof(arr[0]);//输出为10.
    printf("%d\n", sz);


    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值