自己可以做百度网站吗,郑州seo技术服务,山西响应式网站哪家好,如何做好网站seo2019独角兽企业重金招聘Python工程师标准 iOS_06_基本运算符 一、算术运算 c语言一共有34种运算符#xff0c;包括了常见的加减乘除 1.加法运算 # 除了能做加法运算#xff0c;还能表示正号#xff1a;5、90 2.减法运算- # 除了能做减法运算#xff0c;还能表… 2019独角兽企业重金招聘Python工程师标准 iOS_06_基本运算符 一、算术运算 c语言一共有34种运算符包括了常见的加减乘除 1.加法运算 # 除了能做加法运算还能表示正号5、90 2.减法运算- # 除了能做减法运算还能表示符号-10、-200 3.乘法运算* # 注意符号不是x,而是* 4.除法运算/ # 注意符号不是÷也不是\,而是/ # 整数除于整数还是整数。1/2的值是0并不是二分之一 5.取余运算% # 什么是取余两个整数相除之后的余数 # %两侧只能是整数 # 正负性取决于%左侧值 6.注意点 * 自动类型转换 int a 10.6 int b 10.5 1.7 自动将大型转换为了小数类型会丢失精度 * 自动类型提升 int b 10.5 10; 将右边的10 提升为了double类型 double b 1.0/2; 解决除法的精度问题 * 强制类型转换 double a (double)1/2 double b (double)1/2 * 运算顺序 # 表达式 # 结合性结合方向234 # 优先级54*8-3 二、赋值运算 1. 简单赋值 * int a 10 5;的运算过程 * a b 10;的运算过程 * 等号左边部能是常量比如10 11 2.复合赋值 * 复合减乘除余 a4 5; 三、自增自减 1.简单使用 * 自增运算符。如a ,a 都是等价于a a1 * 自减运算符。如a--,--a,都等价于 a a-1 * 5 是错误的 2. a和a的区别 int a 10; a a; int b a; int b a; 四 、sizeof 1.作用 用来计算一个变量或者一个常量、一种数据类型所占的内存字节数。 2.基本形式 * sizeof(变量\常量) * sizeof 变量\常量 * sizeof(数据类型) 五、 关系运算比较运算 1.条件判断 * 默认情况下我们在程序中写的每一句正确代码都会被执行。但很多时候我们想在某个条件成立的情况下才执行某一段代码 * 这种情况的话可以使用条件语句来完成但是我们暂时不学习条件语句先来看看一下更基础的知识如何来判断一个条件成不成立。 2.真假 * 在C语言中条件成立称为”真“条件不成立称为”假“因此判断条件是否成立就是判断条件的”真假“。 * 怎么判断真假呢 c语言规定任何数值都真假性任何非0值都为”真“只有0才为”假“。也就是说108-184.5、-10.5等都是”真“0则是”假“。 3.关系比较 * 开发中经常要比较比如斗地主游戏中牌的大小。利用关系运算符就可以比较两个值的大小。 * 关系运算符的运算结果只有2种如果条件成立结果就是1也就是”真“如果条件不成立结果就为0也就是”假“ 4.使用注意 * 关系运算符中 、的优先级相等、、、的优先级相等且前者的优先级低于后者231 * 关系运算符的结合方向为”从左往右“432 * 关系运算符的优先等级小于算术运算符348-2 六、逻辑运算 * 有时候我们需要在多个条件同时成立的时候才能执行某段代码比如用户只有同时输入了qq和qq密码才能执行登陆代码如果只输入了QQ或者只输入了密码就不能执行登陆嗲码。这中情况下我们需要借助C语言提供的逻辑运算符。 * 逻辑运算的结果只有2个”真“为1”假“为0 1.逻辑与 * 使用格式 # ”条件A添加B“ * 运算结果 # 只有当条件a和添加b成立时结果才为1也就是”真“其余情况的结果都为0也就是”假“。因此条件A或者添加B只要有一个不成立结果都为0也就是”假“ *运算过程 # 总是先判断条件A是否成立 #如果添加A成立接着再判断条件B是否成立如果添加B成立”条件AB“的结果为1即”真“如果条件B不成立结果就是0即”假“ # 如果条件A不成立就不会再去判断条件B是否成立因为条件A已经不成立了不管条件B如何”条件A条件B“的结果肯定是0也就是”假“ *举例 逻辑与的结合方向是”自左至右“ 。比如表达式a3(a5) # 若a的值是4先判断a3,成立再判断a5,成立。因此为1 # 若a的值是2先判断a3不成立停止判断。因此结果为0 * 注意 # 若想判断a的值是否在(3, 5)范围内千万不能写成3a5因为关系运算符的结合方向为“从左往右”。比如a为2它会先算3a也就是32条件不成立结果为0。再与5比较即05条件成立结果为1。因此 3a5的结果为1条件成立也就是说当a的值为2时a的值是在(3, 5)范围内的。这明显是不对的。正确的判断方法是(a3) (a5) # C语言规定任何非0值都为“真”只有0才为“假”。因此逻辑与也适用于数值。比如 5 4的结果是1为“真”-6 0的结果是0为“假” 2.||逻辑或 * 使用格式 ”条件A||条件B“ * 运算结果 当条件A或者条件B只要由一个成立时也包括添加A和条件B都成立结果就为1也就是”真“只有当条件A和条件B都不成立时结果才为0也就是”假“。 * 运算过程 总是先判断添加A是否成立 # 如果条件A成立就不会再取判断条件B是否成立因为条件A已经成立了不管添加B如何”条件A“||条件B的结果肯定是1也就是”真“。 # 如果条件A不成立接着再判断条件B是否成立如果条件B 成立”条件A“||”条件B“的结果就为1即”真“如果添加B不成立结果为0 即”假“ * 举例 逻辑或的结合方向是”自左至右“。比如表达式a3||(a5) # 若a的值是4先判断a3不成立再判断a5也不成立。因此结果为0 # 若a的值是2先判断a3成立停止判断。因此结果为1 # 因此如果a的值在(-∞, 3)或者(5, ∞)范围内结果就为1否则结果就为0 * 注意 C语言规定任何非0值都为“真”只有0才为“假”。因此逻辑或也适用于数值。比如 5 || 4的结果是1为“真”-6 || 0的结果是1为“真”0 || 0的结果是0为“假” 3.! 逻辑非 * 使用格式 “! 条件A” * 运算结果 # 其实就是对条件A进行取反若条件A成立结果就为0即“假”若条件A不成立结果就为1即“真”。也就是说真的变假假的变真。 *举例 # 逻辑非的结合方向是“自右至左”。比如表达式 ! (a5) # 若a的值是6先判断a5,成立再取反之后的结果为0 # 若a的值是2先判断a3,不成立再取反之后的结果为1 # 因此如果结果的值大于5结果就为0否则结果为1 *注意 # 可以多次连续使用逻辑非运算符42结果为0是”假“42结果为1是”真“42结果为0 # C语言规定任何非0值都为”真“只有0才为假”0“。因此对非0值进行逻辑非运算的结果都是0对0进行逻辑非运算的结果为1。5、6.7、-9的将诶过都为00结果为1. 4.优先级 * 逻辑运算符的优先级别顺利为小括号() 负号 - ! 算术运算符 关系运算符 || * 表达式!(35) || (24) (61) 先计算 !(35)、(24)、(61)结果为1式子变为1 || 1 0再计算1 0式子变为1 || 0最后的结果为1 * 表达式325||63 等价于 ((32) 5) || (63)结果为1 * 表达式43 !-52 等价于 (43) ((!(-5)) 2) 结果为0 七、三元运算符 *N目运算符-三目运算符 # int a 5?10:2; # 获得a、b中的最大数 # 获得a、b、c中的最大数 //运算符 运算符 算术运算符 - * / % 逻辑运算符 || ! 关系运算 ! 位运算符 | ^ ~ 移位运算符 移位运算符看代码2.c 成员运算符 . - 单目运算符(这种运算符只对一个操作数进行运算) 取地址 解引用* 类型强转() 赋值运算符 - * / % | ^ 条件运算符 ?: 逗号运算符 , 下标运算符 括号运算符 () {} ********************************* 表达式 1, 变量名与运算符的组合 叫表达式 2, 变量名 也可以是表达式 例下列情况都是表达式 int a,b,c; a b c ab a*c ab*c/a%12 (a) 表达式的值 如果是赋值表达式的话那么表达式的值 就是最终运算完成后的左值 (左值赋值表达式中的赋值符‘’的左边 的值,) (右值赋值表达式中的赋值符‘’的右边) 普通表达式的值就是最终运算全部完成后 的结果 ab ab*c a%b*c a*c/b%10d|c^b 对于上面这个复杂的表达式不能确定 它的值所以要根据运算符的优先级 和结合性来确定表达式的值 运算符的优先级 括号成员第一 () {} [] . - 全体单目第二 * () ~ ! sizeof() -- 乘除余三加减四 */% - 移位五 关系六 等和不等排第七 ! 位与异或和位或 三分天下八九十 ^ | 逻辑或和与 十二和十一 条件高于赋值 ?: - * / | ^ 逗号运算级最低 , 根据运算符的优先级可以处理不同优先级的运算符的 运算顺序但是相同优先级的运算符由结合性来决定 运算符的结合性 1, 赋值运算符具有右结合性 2, 单目运算符具有右结合性 3, 其它的所有运算符具有左结合性 *************** 练习 1, int a10,b20,c1,d0; 求下列表达式的值: abc||d 分析 编译器读源代码从左到右 1, a 发现a只是个操作数,接着找运算符 2, a 发现逻辑与需要两个操作数 但暂时只有一个所以接着要找 另一个操作数 3, a b 找到操作数b时要先判断对b 的运算符有几个如果只有一 个就立刻运算,否则有两个运 算符的情况下要判断两个运算 符的优先级 4, a b 比较 和 , 发现优先运算,所以就 先运算但是需要两 个操作数,所以要接着找 的第二个操作数 5, a b c 找到c之后要判断c有 几个运算符对它运算 6, a b c || 比较 和 || , 发现移位优先,移位 运算符的两个操作数 都到位了,所以可以 执行移位运算 7, a 40 || 8, a 40 || 比较 和 ||,发现高 9, 1 || d 10, 1 || d 比较 || 和 高 11, 1 || 0 (副作用: dd1) 12 1 到此结束 注意 1||(....) 都为1 0(....) 都为0 但: 1||(a),cb (1,2)的值是2 (ab,2) 逗号表达式的值是 最右边的表达式的值,但逗号之 前的表达式要参与运算 a10,b20,c1,d0; a||c--d1b/a 这个或的第二个操作数为: ( c--d1b/a ) 分析 1, a 2, a 3, 10 (aa1 : a1) 4, 10 || 5, 10 || c 6, 10 || c-- 7, 10 || c--d 8, 10 || c--d1 c--dc?c:d-- 转载于:https://my.oschina.net/u/2603560/blog/638341