//赋值操作符(一个等号) = += -= *= /= >>= <<= %= &= ^= |= //int main() //{ // int a = 0; // a += 3;//等价于a=a+3 // a >>= 3;//等价于a=a>>3 //} //int main() //{ // int flag = 5; // if (flag) // { // printf("hehe\n"); // } // if (!flag)//!逻辑反操作符 // { // printf("haha\n"); // } // return 0; //} //sizeof---计算和统计操作类型的长度(字节) sizeof是操作符,不是函数,sizeof()的括号能省略,函数不能 //int main() //{ // int a = 10; // char arr[10] = { 0 };//10 一个char一个字节,共10个字节 arr是数组名====char[10]是数据类型 // printf("%d\n", sizeof(a));//4 一个int4个字节 // printf("%d\n", sizeof a);//计算变量大小,sizeof()的括号能省略 // printf("%d\n", sizeof (char[10]));//10 // printf("%d\n", sizeof (arr)); //10 // printf("%d\n", sizeof(int));//4字节 // return 0; //} //int main() //{ // int a = 10; // short s = 5;//short占两个字节 // printf("%d\n", sizeof(s=a + 2));//2 s是short型,2个字节(s括号内不计算) // //因为sizeof在编译过程结果由s决定,计算是在执行过程,执行时,已经丢弃 // printf("%d\n", s ); // return 0; //} //int main() //{ // int a = -1; //-1的二进制为1000000000000000000000000000000000000001(原码) // // 1111111111111111111111111111111111111110(反码) // // 1111111111111111111111111111111111111111(补码) // int b = ~a;//~按位取反,变为0000000000000000000000000000000000000000,为0 // printf("%d\n", b);//打印结果为0 // printf("%d\n", a);//打印结果为-1.....a不变 // return 0; //} //int main() //{ // int a = 13; // a = a | (1 << 4);//只把二进制的1x向前移动四位并按位或 // printf("%a=%d\n", a);//29 // //目的:变为原来的13 // a = a & ~(1 << 4);// // printf("a=%d\n", a);//13 // return 0; //} 00000000000000000000000000001101(72&73) 00000000000000000000000000011101(原来的a是29) 11111111111111111111111111101111(~) 00000000000000000000000000010000(1<<4) 1<<4 //int main() //{ // int a = 10; // int b = a++;//后置++,先使用(a赋值给b),后(a自己)++ a b结果不同 // printf("a=%d\n", a); // printf("b=%d\n", b); // return 0; //} //int main() //{ // int a = 10; // int b = ++a;//前置++,先(a自己)++,后使用(a赋值给b) a b结果相同 // printf("a=%d\n", a); // printf("b=%d\n", b); // return 0; //} //int main() //{ // int a = 3; // int b = 0; // if (a && b)//a,b都为真(非0),才可以就进入该循环 if(a||b)//a,b有一个为真(非)就可以进入if循环 // { // printf("a&&b",a&&b); // } // return 0; //} //int main() //{ // int i = 0, a = 0, b = 2, c = 3, d = 4; // // //i = a++ || ++b || d++;//a先使用0,后++,成为1,此时a=0||b=3为1,1||一个值,不计算d,所以答案为1 3 3 4 // //printf("a=%d\nb=%d\nc=%d\nd=%d\n", a, b, c, d);//打印结果为1 3 3 4 // i = a++ && ++b && d++;//a先使用0,后++,成为1,此时a=0&&一个值,不计算b,为0,不计算d,所以答案1 2 3 4 // printf("a=%d\nb=%d\nc=%d\nd=%d\n", a, b, c, d);//打印结果为2 3 3 5 // // return 0; //}