五合一网站做优化好用吗,网站设计的专业流程,wordpress 多语言设置,58同城济南网站建设作者前言 作者介绍#xff1a; 作者id#xff1a;老秦包你会#xff0c; 简单介绍#xff1a; 喜欢学习C语言和python等编程语言#xff0c;是一位爱分享的博主#xff0c;有兴趣的小可爱可以来互讨 个人主页::小小页面 gitee页面:秦大大 一个爱分享的小博主 欢迎小可爱们…作者前言 作者介绍 作者id老秦包你会 简单介绍 喜欢学习C语言和python等编程语言是一位爱分享的博主有兴趣的小可爱可以来互讨 个人主页::小小页面 gitee页面:秦大大 一个爱分享的小博主 欢迎小可爱们前来借鉴 _______________________________________________________ ______________________________________________________________________ 目录 操作符类别 操作符的使用 —————————————————————————————————— 算术操作符 - * / % * - 等操作符就跟数学的用法一样这里先不讲 / 有两种用法一种为整数除法一种为小数除法 #include stdio.h
int main()
{int a 20;printf(%d\n, a / 5);printf(%lf\n, a / 5.0);return 0;
} %只能是两边只能是整数 移位操作符针对的是该数的补码 左移操作符 右移操作符 注移位操作符的操作数只能是整数。 这两类操作符主要是针对补码来进行的 下面我们来普及一下知识 整数在二进制中的表示中有三种形态分别是源码 、反码、补码 原码按照数值的正负直接写出一个整数的二进制数正数符号位为0负数符号位为1 对于一个整数的在C语言中的大小是四个字节即32bit 对于有符号的整数来说最高位的1位是符号位 符号位为1 表示是负数 符号位为10表示是正数 对于无符号整数正数所有位都是有效位 0无符号位 反码正数的反码和正数的原码相同负数的反码符号位不变其他位取反 补码正数的补码和正数的原码相同负数的补码是在反码的基础上加1 计算机采用的就是取反加1的套路 C语言中内存存一个整数是存它的补码整数在内存中存储的是补码整数在计算的时候使用的也是补码 右移运算符 分类1.逻辑右移 2. 算术右移 这两种右移是由编译器决定的不能由个人决定vs编译器是算术右移 #include stdio.h
int main()
{int m 7;int n 7 1;printf(%d, n);return 0;
} 算术右移 根据你要移动的位数在最右边舍弃几位并在最左端补上0而负数的在最左端补上1 逻辑右移 根据你要移动的位数在最右边舍弃几位并在最左端补上0 左操作符 你要移动的位数在最左边舍弃几位并在最右端补上0 位操作符针对的是该数的补码 // 按位与 | // 按位或 ^ // 按位异或 注他们的操作数必须是整数。 这个操作符也是对操作数的补码进行操作的 #include stdio.h
int main()
{int a -5;int b 3;printf(%d\n, a b);printf(%d\n, a | b);printf(%d\n, a ^ b);return 0;
} //按位与 跟数学的与相识全为真才是真两数对应的二进制位都为1才是1其他都是0 -5 3》00000000000000000000000000000011补码 | //按位或 跟数学的或相识有真才是真全假才为假两数对应的二进制位只有有一个为1才是1全部为0才是0 -5 | 3》1111111111111111111111111111010 (补码)》10000000000000000000000000000101 原码 ^ //按位异或 两数对应的值是一样的就为0不同就为1 -5^31111111111111111111111111111000(补码) 》10000000000000000000000000001000原码 a^aa 0^aa 我们计算两数交互的时候可以利用这个方法来可以少创建一个变量这个方法的可读性不高建议不要使用太多 #include stdio.h
int main()
{int a 5;int b 6;printf(a%d b%d\n, a, b);a a ^ b;b a ^ b;a a ^ b;printf(a%d b%d\n, a, b);return 0;
} 需要注意的是这些操作符适用于整形 赋值操作符 从右向左赋值 复合赋值符 、- 、* 、/ 、% 、 、 、 、| 、^ 这些的使用就跟 a ab ab是一样的效果 单目操作符 是把真变成假假变成真 变成假是0 变成真是1 取地址, * 解引用操作符 #include stdio.hint main()
{int a 0;printf(%p\n, a);int* p a;int arr[10];int* pa arr;printf(%p\n, pa);printf(%p\n, pa);*p 15;//对p解引用操作,*p是通过p中存放的地址,找到p指向的对象,*p就是aprintf(%d\n, a);return 0;
} sizeof计算结果返回size_t类型也就是unsigned int 无符号整型 输出格式是%zd #include stdio.h
int main()
{int arr[10];printf(%zd\n, sizeof arr);printf(%zd\n, sizeof (arr));printf(%zd\n, sizeof (int));printf(%zd\n, sizeof arr / sizeof(int));return 0;
} sizeof 不是函数因为函数的引用的不能省略 是计算类型或者变量的大小单位是字节 计算变量大小可以不写如果计算类型要保留 ~ 对一个数的二进制按位取反包括符号位 #include stdio.h
int main()
{int a 0;printf(%d\n, ~a);return 0;
}结果为-1 0的补码为00000000000000000000000000000000~0则是11111111111111111111111111111111取反加1得到原码为10000000000000000000000000000001 也就是-1了 #include stdio.h
int main()
{int a 2;printf(%d, a | (1 2));printf(%d, (a | (1 2)) (1 2));return 0;
} 、--都有两种用法分别是前置和后置 前置先加1 再使用 后置先使用再加1 #include stdio.h
int main()
{int a 0;int b a;printf(a%d b%d\n, a, b);b a; printf(a%d b%d\n, a, b);return 0;
} -- 前置--先减1 再使用 后置--先使用再减1 #include stdio.h
int main()
{int a 0;int b --a;printf(a%d b%d\n, a, b);b a--; printf(a%d b%d\n, a, b);return 0;
} (类型) 强制类型转换 #include stdio.h
int main()
{int a (int)3.14;printf(%d, a);return 0;
} 类型转换尽量能不使用就不使用 关系操作符 、 、 、 、! 用于测试 “ 不相等 ” 、 用于测试 “ 相等 ” 在编程的过程中 和 不小心写错导致的错误。 逻辑操作符 逻辑与 || 逻辑或 #include stdio.h
int main()
{int a 1;int b 0;printf(%d, a b);printf(%d, a || b);return 0;
} 短路操作 #include stdio.h
int main()
{int i 0,a0,b2,c 3,d4;i a b d;//i a||b||d;printf(a %d\n b %d\n c %d\nd %d\n, a, b, c, d);return 0;
} 使用时只要一方为假另一方就不用算了 使用|| 只要一边为真另一方就不用算了 总结 操作符展示到这里了后面还有一篇介绍下面的有不懂的小可爱可以私聊我