网站网站开发违法吗,wordpress 主题 汉化,床上做受网站,遵义做网站推广前言
本次博客一定会让刚刚学习C语言小白有所收获
本次操作符讲解不仅分类还会有代码示例
好好看 好好学 花上几分钟就可以避免许多坑
1 操作符的基本使用
1.1操作符的分类
按功能分
算术操作符#xff1a; 、- 、* 、/ 、%
移位操作符:
位操作符…前言
本次博客一定会让刚刚学习C语言小白有所收获
本次操作符讲解不仅分类还会有代码示例
好好看 好好学 花上几分钟就可以避免许多坑
1 操作符的基本使用
1.1操作符的分类
按功能分
算术操作符 、- 、* 、/ 、%
移位操作符:
位操作符: | ^
赋值操作符: 、 、 - 、 * 、 / 、% 、 、 、| 、^
单⽬操作符 、、--、、*、、-、~ 、sizeof(类型)
关系操作符: 、 、 、 、 、 !
逻辑操作符 、||
(三目操作符)条件操作符 ? :
逗号表达式 ,
下标引⽤ [] 函数调⽤ ()
按性质分为 单目操作符 双目操作符 三目操作符
主要的区分是 单目为一个操作数 双目为两个操作数 三目操作符为三个操作数
1.2操作符的使用
1.21算术操作符
对于算术操作符来说值得注意的点只有 / %
对于加减乘 任何数据都能实现但是 除法
在遇到整数时首先除数不能为0其次除不尽是只会保留整数
比如 2 /12 1/20 5/31
当然如果是浮点数会保留的 1/2.00.5
如果是%(求模) 注意它只服务于整型数据取得的数为余数
大家看看代码呗 是不是 % 只能对整数有效
让大家看看结果 10/3只能保留3 10%3余下一个1
这里没有讲解 加减乘 大家可以自行操作就是数学中的普通四则运算
1.22移位操作符 移位操作符的操作数只能是整数 左移操作符
移位规则左边抛弃、右边补0
我们举两个例子来说明情况
注意整型在内存中的存储为补码我们分别以 -1 与1来进行左移操作
这是对一的左移
先画图 画的一般但是能看
继续看-1的左移 我们看看代码 此时a 和 b的大小都变为2倍
右移操作符
位规则⾸先右移运算分两种
1. 逻辑右移左边⽤0填充右边丢弃
2. 算术右移左边⽤原该值的符号位填充右边丢弃
我们的编译器一般都是算术右移
直接看代码
#inlcudestdio.h
int main()
{int a 2;int b -2;printf(%d, a 1);printf( %d, b 1);return 0;
}
看结果 所以左移操作符的作用是 在不溢出的情况下使原有的数*2
右移操作符的作用是 在不溢出的情况下使原有的数/2
1.23位操作符 按位与 | 按位或 ^ 按位异或 ~按位取反
位操作 这里只讲简单的原理即可
1 按位与
画图吧 2 | 按位或
看图 3^ 按位异或
看图 4按位取反
看图 注意一下再char类型中是如此 它的范围为 -128~127
而short类型的 它的范围为-32768~32767
我们可以看看 它的-32768的原码为
1000 0000 0000 0000
值得注意的是它的补码也是 1000 0000 0000
ok 上述代码都可以通过代码实现 是不是对应上了
1.24赋值操作符: 、 、 - 、 * 、 / 、% 、 、 、| 、^
其实这个没什么可讲的就是赋值
看代码
int main()
{char a 1;char b 126;a 28;//把28赋值给aa 10;//aa10a - 10;//aa-10;a * 10;//aa*10;a / 10;//aa/10;a % 10;//aa%10;a 10;//aa10;a 1;//aa1;return 0;
}
1.25单⽬操作符 -- ! sizeof()
前置 --
是先 --后使用
后置 --
是先使用后 --
是使非0的值变为0 使0变为1
简单举例子就好
int main()
{int a 0;int b 1;int c 1;if (a)printf(a是先加1在使用进入判断哦\n);if (--b)printf(--b是先减去1在进入判断哦\n);if (c--)printf(c--是先使用才会减1哦\n);return 0;
}
看结果 sizeof()
作为单目操作符为去某个数据的地址与 双目操作符按位与是不同的含义
sizeof是计算某个数据所占的内存大小
看代码
int main()
{int a 10;int* p a;*p 20;//改变a的值int b sizeof(p);//计算指针类型的大小int c sizeof(b);//计算int类型的大小printf(%d %d %d , a, b, c);return 0;
} 1.26关系操作符: 、 、 、 、 、 !
这其实更没有必要讲解l
其实就是数学里的比大小如果成立返回1不成立返回0
为不等于
看代码 所以懂了吗
1.27逻辑操作符 、||
逻辑操作符也是一个很重要的操作符
逻辑与 (表达式1)(表达式2) 只有两个都为真时 整个式子才为真
||逻辑或 (表达式1)||(表达式2)只要一个为真时 整个式子就为真
给一个最简单的代码吧
int main()
{int a 0 0;int b 1 1;int c 1 0;int a1 0 || 0;int b1 1 || 1;int c1 1 || 0;printf(%d %d %d,a,b,c);printf(%d %d %d, a1, b1, c1);return 0;
}
看结果 当然有注意点的
1两端其实可以是表达式的
2对于(表达式1)(表达式2)只要 表达式1为假 那么表达式二直接不运算整个式子的值为0
3对于(表达式1)||(表达式2)只要 表达式1为真 那么表达式而同样不计算 整个式子的值就为1
1.28(三目操作符)条件操作符 表达式1? 表达式2:表达式3
如果表达式1为真则执行表达式1否者执行表达式2
很简单
看代码
int main()
{int a 10;int b 20;//三目操作符int c 10 20 ? 10 - 20 : 10 20;int d a10?10:20;//注意后面的表达式只能是一个确切的值不能是一个赋值表达式//a b ? a 20 : b 30;//errorprintf(%d %d %d %d, a, b, c, d);//还有一种用途,可以用在打印里头 条件打印printf(a b ? * : 1);return 0;
}
1.29逗号表达式
是从左到右依次执行代码取最后一个表达式的值为返回值 看语法
(表达式1,表达式2,表达式3,表达式4,表达式5,表达式6······,表达式n) , 只是一个小小的逗号可能还看不出什么我们还是看代码说话
int main()
{int a 10;int b 20;int c 30;int d (a 30, b, c 60, 20);//那么此时 a为30 b为21 c为90 d取上最后一个表达式的值为20//看结果printf(%d %d %d %d, a, b, c, d);return 0;
} 1.30下标引用 函数调⽤ [] ()
下标引用 主要用于数组中调用任意位置中的元素
当然他也可以对指针使用等效于 a[0]*(a0)
函数调用符号更没什么好讲了用于函数的调用以及定义
还是举例看代码就好
void haha(int a,int b);//这是函数声明用了 ()
int main()
{
int a20;
int *pa;
int cp[0];//算是解引用的一种
int arr[20]{0};//对数组的定义
return 0;
}
至此几乎所有的操作符的基本使用都讲解完了接下来看看优先级以及结合性
1.3操作符的属性
分为优先级、结合性
先上一张图 1.31优先级结合性
优先级 优先级指的是如果⼀个表达式包含多个运算符哪个运算符应该优先执⾏。各种运算符的优先级是 不⼀样的
比如
3 4 * 5;
上⾯示例中表达式 3 4 * 5 ⾥⾯既有加法运算符 ⼜有乘法运算符 * 。由于乘法 的优先级高于加法所以会先计算 4 * 5 ⽽不是先计算 3 4
结合性
如果两个运算符优先级相同优先级没办法确定先计算哪个了这时候就看结合性了则根据运算符 是左结合还是右结合决定执⾏顺序。⼤部分运算符是左结合从左到右执⾏少数运算符是右 结合从右到左执⾏⽐如赋值运算符
5 * 6 / 2;
上⾯⽰例中 * 和 / 的优先级相同它们都是左结合运算符所以从左到右执⾏先计算 5 * 6 再计算 6 / 2
运算符的优先级顺序很多下⾯是部分运算符的优先级顺序按照优先级从⾼到低排列建议⼤概 记住这些操作符的优先级就⾏其他操作符在使⽤的时候查看下⾯表格就可以了
我们可以列出几个优先级问题的代码一般而言优先级不需要特殊记忆只要多敲多练即可 看看代码
int main()
{int a 10;//看看如果我们要让a先左移两位再按位与上一个1就必须要加上括号//否则此时是先2与1逻辑与再左移int d (a2)1;return 0;
}
//这个很容易搞错大家以后会遇到这样的代码
再看一个例子
int main()
{int arr[20] {0};int** parr arr;//不加上括号的话编译器无法知道 是先执行 * 还是[] 所以要加上()(*parr)[10] 1;return 0;
}这类例子还有很多基本上都是解引用的优先级一样不知道先使用那个解应用
对于结合性只需记忆一个点
1 赋值操作符都是从右往左
2三目操作符从右往左
3其他基本都是从左往右
总结
大家还是要多练才能有理解祝大家开心
文章转载自: http://www.morning.ldfcb.cn.gov.cn.ldfcb.cn http://www.morning.qwwhs.cn.gov.cn.qwwhs.cn http://www.morning.hyjpl.cn.gov.cn.hyjpl.cn http://www.morning.rpgdd.cn.gov.cn.rpgdd.cn http://www.morning.fnfxp.cn.gov.cn.fnfxp.cn http://www.morning.srbfz.cn.gov.cn.srbfz.cn http://www.morning.klpwl.cn.gov.cn.klpwl.cn http://www.morning.bgxgq.cn.gov.cn.bgxgq.cn http://www.morning.qrlkt.cn.gov.cn.qrlkt.cn http://www.morning.tsnmt.cn.gov.cn.tsnmt.cn http://www.morning.xwzsq.cn.gov.cn.xwzsq.cn http://www.morning.qwwcf.cn.gov.cn.qwwcf.cn http://www.morning.kpbq.cn.gov.cn.kpbq.cn http://www.morning.lmmkf.cn.gov.cn.lmmkf.cn http://www.morning.zlxkp.cn.gov.cn.zlxkp.cn http://www.morning.xdlwm.cn.gov.cn.xdlwm.cn http://www.morning.qmnjn.cn.gov.cn.qmnjn.cn http://www.morning.zwmjq.cn.gov.cn.zwmjq.cn http://www.morning.hrzymy.com.gov.cn.hrzymy.com http://www.morning.wtbzt.cn.gov.cn.wtbzt.cn http://www.morning.mm27.cn.gov.cn.mm27.cn http://www.morning.kuaijili.cn.gov.cn.kuaijili.cn http://www.morning.jbpodhb.cn.gov.cn.jbpodhb.cn http://www.morning.fmgwx.cn.gov.cn.fmgwx.cn http://www.morning.ryxyz.cn.gov.cn.ryxyz.cn http://www.morning.qygfb.cn.gov.cn.qygfb.cn http://www.morning.xjpnq.cn.gov.cn.xjpnq.cn http://www.morning.pqkgb.cn.gov.cn.pqkgb.cn http://www.morning.nhpgm.cn.gov.cn.nhpgm.cn http://www.morning.rwlsr.cn.gov.cn.rwlsr.cn http://www.morning.qbjrl.cn.gov.cn.qbjrl.cn http://www.morning.wjxtq.cn.gov.cn.wjxtq.cn http://www.morning.qsctt.cn.gov.cn.qsctt.cn http://www.morning.bflwj.cn.gov.cn.bflwj.cn http://www.morning.lqtwb.cn.gov.cn.lqtwb.cn http://www.morning.qcrhb.cn.gov.cn.qcrhb.cn http://www.morning.tsynj.cn.gov.cn.tsynj.cn http://www.morning.rmfh.cn.gov.cn.rmfh.cn http://www.morning.jczjf.cn.gov.cn.jczjf.cn http://www.morning.rlrxh.cn.gov.cn.rlrxh.cn http://www.morning.kaoshou.net.gov.cn.kaoshou.net http://www.morning.wlxfj.cn.gov.cn.wlxfj.cn http://www.morning.pslzp.cn.gov.cn.pslzp.cn http://www.morning.mxdiy.com.gov.cn.mxdiy.com http://www.morning.klcdt.cn.gov.cn.klcdt.cn http://www.morning.fqmcc.cn.gov.cn.fqmcc.cn http://www.morning.mgtrc.cn.gov.cn.mgtrc.cn http://www.morning.wnjwb.cn.gov.cn.wnjwb.cn http://www.morning.bqwrn.cn.gov.cn.bqwrn.cn http://www.morning.jxtbr.cn.gov.cn.jxtbr.cn http://www.morning.rdwm.cn.gov.cn.rdwm.cn http://www.morning.rnzbr.cn.gov.cn.rnzbr.cn http://www.morning.tkkjl.cn.gov.cn.tkkjl.cn http://www.morning.hwzzq.cn.gov.cn.hwzzq.cn http://www.morning.tmsxn.cn.gov.cn.tmsxn.cn http://www.morning.bnxfj.cn.gov.cn.bnxfj.cn http://www.morning.rqpgk.cn.gov.cn.rqpgk.cn http://www.morning.cnqdn.cn.gov.cn.cnqdn.cn http://www.morning.mtrz.cn.gov.cn.mtrz.cn http://www.morning.ftync.cn.gov.cn.ftync.cn http://www.morning.nkjjp.cn.gov.cn.nkjjp.cn http://www.morning.qxrct.cn.gov.cn.qxrct.cn http://www.morning.qpsxz.cn.gov.cn.qpsxz.cn http://www.morning.redhoma.com.gov.cn.redhoma.com http://www.morning.nqnqz.cn.gov.cn.nqnqz.cn http://www.morning.tqsnd.cn.gov.cn.tqsnd.cn http://www.morning.lbgsh.cn.gov.cn.lbgsh.cn http://www.morning.nypsz.cn.gov.cn.nypsz.cn http://www.morning.nnwpz.cn.gov.cn.nnwpz.cn http://www.morning.tfpmf.cn.gov.cn.tfpmf.cn http://www.morning.glswq.cn.gov.cn.glswq.cn http://www.morning.fnywn.cn.gov.cn.fnywn.cn http://www.morning.qddtd.cn.gov.cn.qddtd.cn http://www.morning.wmdbn.cn.gov.cn.wmdbn.cn http://www.morning.zzbwjy.cn.gov.cn.zzbwjy.cn http://www.morning.prprj.cn.gov.cn.prprj.cn http://www.morning.yxyyp.cn.gov.cn.yxyyp.cn http://www.morning.fbmjw.cn.gov.cn.fbmjw.cn http://www.morning.rbylq.cn.gov.cn.rbylq.cn http://www.morning.ztrht.cn.gov.cn.ztrht.cn