首页 > 其他分享 >Day 15(操作符)赋值+单目+关系+逻辑+条件+逗号表达式+下标引用+函数调用

Day 15(操作符)赋值+单目+关系+逻辑+条件+逗号表达式+下标引用+函数调用

时间:2024-03-23 18:29:16浏览次数:20  
标签:15 int eg 函数调用 ++ 单目 操作符 printf main

1.赋值操作符: =    

复合赋值符:+=         -=        *=        /=       &=       |=        ^=        %=        >>=        <<=

eg:  a=a+2→a+=2    a=a>>1→a>>=1

连续赋值:a=b=c(从右向左运行)(不推荐此方法)

2.单目操作符(只有一个操作数)

:逻辑反操作(真变假,假变真)

eg:

int a=1;

//a为真,进入if

if(a)

{}

//a为假,进入if

if(!a)

{}

+        -:和数学一样

~:二进制位按位取反(所有补码反过来,1为0,0为1)

eg:把整数的二进制数中的某一位随意改成0/1

int main()
{
    int a = 13;//假如把第5位的0改为1
    //  00000000000000000000000000001101(13的补码)
    //  00000000000000000000000000010000(1<<4)
    //  两者按位或|,即可让第5位的0改为1
    a |= 1 << 4;//a=29
    printf("a= %d\n", a);
    //此时若把我改的1再改回去
    //00000000000000000000000000011101(29的补码)
    //11111111111111111111111111101111(~(1<<4))
    //两者按位与&,即可让第五位由1变为0
    a &= ~(1 << 4);
    printf("a= %d", a);
    return 0;
}

运行结果:a=29

                  a=13

++   --  :前置/后置(a++:先使用,然后a=a+1  ;++a:先是a=a+1,再使用a)

eg:int main()
{
    int a = 10;
    printf("%d\n", a++);//打印结果:10,a=11
    printf("%d\n", ++a);//打印结果:12,a=12
    printf("%d\n", a--);//打印结果:12,a=11
    printf("%d\n", --a);//打印结果:10,a=10
    return 0;
}

&:取出变量地址

*:解引用操作符(直接初步了解指针时接触过,不再举例)

(类型):强制类型转换

eg:int main()
{
    int a = (int)1.23;//1.23本是double类型,用(int)后,把double强制转化位int类型,也就是直接扔掉后面的小数
    printf("%d", a);//a=1
    return 0;
}

sizeof():求类型或者变量的大小,单位byte

eg:

结果应该是 40 4 10 4  注意不是40 4 10 1

                                     此函数里的两个形参都是指针,而指针所存放的是地址,地址的大小                                       无论它的类型是什么,大小都是4/8

3.关系操作符

4.逻辑操作符

eg:

int main()
{
    int i = 0, a = 0, b = 2, c = 3, d = 4;
    //&&两边都为真,才为真;有假即为假
    //&&左边为假,右边不再计算
    i = a++ && ++b && d++;
    printf("a=%d ,b=%d ,c=%d ,d=%d ", a, b, c, d);
    return 0;
}

结果为1 2 3 4

int main()
{
    int i = 0, a = 0, b = 2, c = 3, d = 4;
    //||两边都为假,才为假;有真即为真
    //||左边为真,右边不再计算
    i = a++ || ++b || d++;
    printf("a=%d ,b=%d ,c=%d ,d=%d ", a, b, c, d);
    return 0;
}

结果为1 3 3 4

5.条件操作符(三目操作符)

exp1 ?exp2 :exp3

eg

int main()
{
    int a = 2;
    int b = 0;
    if (a > 3)
    {
        b = 5;
    }
    else
        b = -5;
    return 0;
}

等同于(a>3)?b=5:b=-5 

             解释:a>3如果为真,那么b=5,否则b=-5

另一种写法:b=(a>3) ? 5 : -5


6.逗号表达式

exp1,exp2,exp3(从左向右依次计算,整个表达式结果是最后一个表达式的结果)

eg1:

int main()
{
    int a = 1;
    int b = 2;
    int c = (a > b, a = b + 10, a, b = a + 1);//c=13
    printf("%d", c);
    return 0;
}

eg2:

7.下标引用   函数调用  

下标引用操作符:[]

arr[9]等同于9[arr]

函数调用操作符:

标签:15,int,eg,函数调用,++,单目,操作符,printf,main
From: https://blog.csdn.net/2301_81379856/article/details/136811144

相关文章

  • CMU15445 2022fall project3
    CMU154452022fallproject3project3相对project2的b+树来说简单太多了,整体没有什么痛苦的debug,基本就看看其他算子的实现参考一下,很快就能写出来。Task1-AccessMethodExecutorsSeqScan首先我们需要知道:init是做一些初始化工作的,next是留给上层节点调用的,SeqScanExecuto......
  • stp的监听和学习状态为什么需要15秒
    STP(生成树协议)的监听和学习状态各自需要15秒,这主要是为了确保网络在角色选举和地址学习的过程中有足够的稳定性和准确性。1.监听状态需要15秒,主要是为了避免STP协议在收敛过程中产生临时环路。监听状态会持续15秒,以确保BPDU(桥接协议数据单元)有足够的时间在整个网络进行传递。......
  • 代码随想录算法训练营第day54|392.判断子序列 、 115.不同的子序列
    目录392.判断子序列115.不同的子序列392.判断子序列力扣题目链接(opensnewwindow)给定字符串s和t,判断s是否为t的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而......
  • 15,zabbix-elk
    1、安装logstash2、监控/home/elk/test.log文件[[email protected]]#[[email protected]]#ifconfigeth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu8500inet10.206.16.11netmask255.255.240.0broadcast10......
  • Android开发笔记[15]-设置页
    摘要使用MMKV数据框架实现设置页数据同步,设置页可以对其他页面进行设置;设置页数据通过MMKV框架持久化存储,重启APP不丢失.关键信息AndroidStudio:Iguana|2023.2.1Gradle:distributionUrl=https://services.gradle.org/distributions/gradle-8.4-bin.zipjvmTarget='1.......
  • 【LeetCode-153.寻找旋转排序数组的最小值】
    已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums=[0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0],a[1],a[2],...,a[n-1......
  • 洛谷题单指南-集合-P1525 [NOIP2010 提高组] 关押罪犯
    原题链接:https://www.luogu.com.cn/problem/P1525题意解读:有很多罪犯,要关到两座监狱,有一些罪犯之间有仇,并且可以量化出仇恨值,如果关在一起就会冲突,造成的影响就是仇恨值,要使得造成的影响最小,如果可以完全不起冲突,输出0。解题思路:首先,要让冲突影响最小化,显然应该把仇恨大的罪犯......
  • 蓝桥杯2015省B——生命之树
     蓝桥杯官网 洛谷[蓝桥杯2015省B]生命之树题目描述在X森林里,上帝创建了生命之树。他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值。上帝要在这棵树内选出一个非空节点集 S(这里洛谷和蓝桥杯官网的不一样),使得对于S 中的任意两个点......
  • 代码随想录算法训练营第五十四天| ● 392.判断子序列 ● 115.不同的子序列
    判断子序列 题目链接:392.判断子序列-力扣(LeetCode)思路:从子串s开始遍历,查找t中是否存在,因为全程不需要回溯,因此两个for循环就解决了。只是要注意return的时机。(只要不想写的很简洁,逻辑挺简单的其实)classSolution{public:boolisSubsequence(strings,stringt){......
  • P2615 [NOIP2015 提高组] 神奇的幻方
    P2615[NOIP2015提高组]神奇的幻方[NOIP2015提高组]神奇的幻方题目背景NOIp2015提高组Day1T1题目描述幻方是一种很神奇的\(N\timesN\)矩阵:它由数字\(1,2,3,\cdots\cdots,N\timesN\)构成,且每行、每列及两条对角线上的数字之和都相同。当\(N\)为奇数时,我们......