360笔试题

简介: 360笔试题
#include <stdio.h>
int main()
{
    int i = 0,a=0,b=2,c =3,d=4;
    i = a++ && ++b && d++;
    printf("a = %d\n b = %d\n c = %d\nd = %d\n", a, b, c, d);
    return 0;
}

有逻辑操作符具有的短路性就会导致,

i 中的 a++ 他是后置++,所以他是0为假&&操作符就不会再往后看所以a会被后置++成1,而b d并未改变,最终就会打印出1 2 3 4

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

同理因为有短路

首先a为0但是因为是 || 所以还会进行往后看 b b为非0所以左边这个 || 为真再看右边这个 ||因为左边已经有真所以不会再看最右边的d,最终a == 1 b == 3 会打印出1 3 3 4

相关文章
|
网络协议 Java 调度
笔试题总结
32位机器上,以下结构的sizeof(P)为 struct A { int a; char b; int c; char d; } struct P { struct A w[2]; short b; struct A* p; } /*考察结构体对齐和填充: 结构体每个成员相对于结构体首地址的偏移量都是成员大小的整数倍,如果不是,编译器会自动在成员间填充。
989 0
|
Java
笔试题解答
/** * @author shishusheng * @date 2018/8/22 23:35 */ import java.util.
872 0
|
机器学习/深度学习
|
算法 机器学习/深度学习 BI