C语言编程笔记 (进阶语法篇)
一.大语法运算符一运算符六大类1.算数运算符、-、*、/、%2.自增自减运算符、- -3.赋值运算符、、-、*、/、%4.关系运算符、!、、、、5.逻辑运算符!、、||6.三元运算符ab?a:b01.算术运算符加减乘基础用法1.检索表加法 -减法*乘法 /除法 %取余取余数2.加减乘法的代码实现方法一直接输出...printf(d,ab);printf(d,a-b);printf(d,a*b);...方法二借助变量进行输出...int a?int b!printf(d,ab);printf(d,a-b);printf(d,a*b);...回顾整型常量%d实型常量%f字符常量%c字符串常量%s小数数据double在使用时要在%f中加l即%lf3.除法和取余除法和取余都是在进行除法计算但是除法得到的是一个整数取余得到这个数的余数细节部分通用细节1.任何整数间的计算得到的数一定是个整数除法计算有小数点会自动省略抛弃小数点后的数只保留整数部分如果将%d改为%lf最后的数会成为乱码2.如果是小数计算最后的结果一定是一个小数3.整数小数混合计算最后的结果一定是一个小数4.小数直接参与计算最终结果有可能是不精确的如3.3315个36.6615个6最终结果为1010.0/3.0结果可能出现混乱除法的细节1.不能除以0取余的细节:1.取余运算时运算使用的数值必须全部为整数不能出现小数2.获取余数的正负与第一个数保持一致即10%3余数为1-10%3余数为-1-10%-3余数为-1.3.不能与0取余除以0总结数值拆分总结拓展高级用法一.的两种情况1.计算时如果数据类型不同不能直接进行计算要转换为相同类型才能计算需要隐式转换和强制转换进行转换隐式转换把一个取值范围小的转换为取值范围大的即按照数据类型的范围大小进行转换排序charshortintlonglong longfloatdouble规则1.取值范围小的和取值范围大的进行计算小的会自动提升为大的再进行计算2.short char类型的数据会先提升为int再进行计算总结强制转换把取值范围大的赋值给取值范围小的需要强制转化格式目标数据类型 变量名目标数据类型被强转的数据弊端如果转换前的数超过了转换后的类型范围易出现数值偏差错误总结2).加法的第二种字符相加字符输出会查询ASCII码表可以现场跑代码输出查询码表选择性背诵算术运算符小结02.自增自减运算符一.检索表自增运算符表示变量中的数值加一--自减运算符表示变量中的数值减一注和--都可以写在变量的前面或后面格式...int a10;a(or a);printf(...);...不管是 or --在与变量单独写在一行时放在前或后输出结果一样二.自增自减运算符的应用场景1.年龄的增长2.网购的商品数量随点击增加三.自增自减运算符的拓展应用1.单独使用即--与变量单独一行时不管在前或后结果一样2.参与计算考试要考代码别用把自增和自减运算符写在变量的赋值中如1.先用后加即先将a中的数值赋值给b再进行自增此时b中的数值等于ab使用原来的值但是a采用自增后的值。如...int a10int ba...b10a112.先加后用即先让a中的数值进行自增再赋值给b此时b不等于ab使用自增后的值a也使用自增后的值。如...int a10int ba...a11b11使用规则注第一个后缀因为为先用后加所以用原值但变量已经自增所以此后的计算用自增以后的值参与但如果计算的值仍然是后缀使用第一个后缀计算后隐藏记作的数如int a10;a a101121,但第一个a值为11第二个为12因后缀特性隐藏现值使用原值相减同理Windows1.在自增自减混合计算中前缀优先于后缀先加再用大于先用再加2.前缀统一进行自增自减再把结果拿出来用如int a10a a进行了两次的自增因此统一进行2次自增得1212有疑问见开头注释3.后缀统一先用等整个表达式中的变量用完了再进行计算计算时不继承其他后缀的计算结果但继承其他前缀的结果计算计算如int a10a a - a11mac、Linux1.前缀和后缀优先级一样2.从左到右依次进行计算见开头注释3.每一个前缀和后缀都是一个独立的个体但相同变量名的数值前后依次继承即int i10i i不统一计算视作单独一个即111203.赋值运算符一.分类检索1. 直接赋值 int a10将10赋值给a2. 加后赋值 ab将ab的值赋值给a3.- 减后赋值 a-b,将a-b的值赋值给a4.* 乘后赋值 a*b,将a*b的值赋值给a5./ 除后赋值 a/b 将a/b商的值赋值给a6.% 取余赋值 a%b将a/b的余数值赋值给a注这一系列代码中b的值始终不变格式...int a10;int b20;a(or other kinds)b;printf(...);...04.关系运算符比较运算符一.分类检索符号一定要全英文判断是否为偶数a%2!005.逻辑运算符一.逻辑运算符用来连接多个表达式如1X10,在C语言中不能直接这么表示要写成1X,X10.但要把它们表达在一块就要用逻辑运算符与而且链接1XX10.2.检索表二.使用规则0不成立1成立有1个0就不成立2个0也不成立同时满足||0不成立1成立有1就成立2个0才不成立二选一原本是成立运算后不成立反骨可以画数轴辅助三.拓展逻辑运算符的短路效果1.什么是短路当编译器能通过单边确定最终结果便不会再使另一边加入运算06.三元运算符