第二节 基本运算符
3.2.1 算术运算符
内容:
运算符号名称目数优先级结合性作用+加双目4自左至右求两操作数的和-减双目4自左至右求两操作数的差*乘双目3自左至右求两操作数的积/除双目3自左至右求两操作数的整数商%求模双目3自左至右求两操作数的余数+求正单目2自右至左求操作数-求负单目2自右至左求操作数的负数++自增单目2操作数自增1--自减单目2操作数自减1
注意:
(1)对于“/”运算,如果两个操作数中有实型,则运算结果为实型;如果两个均为整型,则运算结果为整型(即实型除去小数部分)。
(2)对于“%”运算,参与操作数的两个操作数必须为整型,其中被模除数不能为0,其结果的正负性与被模除数一致。
(3)对于自增、自减运算分为前置与后置两种,前置将优先自增减,后置则反之。
【程序现场】3-2-1
#include<stdio.h>
int main(void)
{
printf("%d + %d = %d ",4,3,4+3);
printf("%d - %d = %d ",4,3,4-3);
printf("%d * %d = %d ",4,3,4*3);
printf("%d / %d = %d ",4,3,4/3);
printf("%d / %d = %f ",4,3,4/3);
printf("+%d = %d ",4,+4);
printf("-%d = %d ",3,-3);
printf(" ");
int a=10,b=10;
printf("++a = %d ",++a);
printf("b++ = %d ",b++);
printf("b = %d",b);
return 0;
}
3.2.2 赋值运算符
作用:将右边表达式的值赋给左边的变量。
内容:
运算符号名称目数优先级结合性作用=赋值双目14自右至左将右边赋值给左边+=——双目14自右至左将右表达式的值与左操作数相加并赋值-=——双目14自右至左将右表达式的值与左操作数相减并赋值*=——双目14自右至左将右表达式的值与左操作数相乘并赋值/=——双目14自右至左将右表达式的值与左操作数相除并赋值%=——双目14自右至左将右表达式的值与左操作数相模除并赋值<<=——双目14自右至左将左操作数左移右表达式的值次>>=——双目14自右至左将左操作数右移右表达式的值次&=——双目14自右至左将右表达式的值与左操作数按位与并赋值^=——双目14自右至左将右表达式的值与左操作数按位异或并赋值|=——双目14自右至左将右表达式的值与左操作数按位或并赋值
注意:
(1)赋值表达式可以与其他表达式进行嵌套。
【程序现场】3-2-2
#include<stdio.h>
int main(void)
{
int a=4+2*3;
printf("a = %d ",a);
a += 1+2;
printf("a = %d ",a);
a -= 1+2;
printf("a = %d ",a);
a *= 1+2;
printf("a = %d ",a);
a /= 2;
printf("a = %d ",a);
a %= 9;
printf("a = %d ",a);
a >>= 2;
printf("a = %d ",a);
a <<= 2;
printf("a = %d ",a);
printf(" ");
a = 5;
a &= 2; //101 & 010
printf("a = %d ",a);
a ^= 2; //101 ^ 010
printf("a = %d ",a);
a |= 2; //101 | 010
printf("a = %d ",a);
printf(" ");
return 0;
}
3.2.3 逗号运算符
内容:
运算符号名称目数优先级结合性作用,逗号双目15自左至右将各表达式依次连接
注意:
(1)逗号表达式可以嵌套,与其他表达式产生多种多样的组合。
(2)多个逗号表达式其返回值是最右边表达式的值。
【程序现场】3-3-3
#include<stdio.h>
int main(void)
{
int a;
4+5,a=4;
printf("a = %d ",a);
printf("a = %d ",a=4+5,a*2,9-5);
return 0;
}
3.2.4 条件运算符
内容:
运算符号名称目数优先级结合性作用? :条件运算符三目13自右至左选择性执行第二或三个表达式
用法:表达式1 ? 表达式2 : 表达式3
规则:如果表达式1的值为非0,则执行并返回表达式2及值,否则执行并返回表达式3及值。
注意:
(1)虽然条件运算符的判断及执行顺序为:表达式1->表达式2或表达式1->表达式3,但结合性为自右至左,所以在进行嵌套等操作时优先执行右边的表达式中的内容。
【程序现场】3-2-4
#include<stdio.h>
int main(void)
{
int a,b;
a = 1-4 ? 1 : 2 ;
printf("a = %d ",a);
a = 4-4? b=1 : 2-1? b=2: 3;
printf("a = %d ",a);
printf("b = %d ",b);
return 0;
}
3.2.5 关系运算符
内容:
运算符号名称目数优先级结合性作用<小于双目6自左至右判断前操作数是否小于后操作数<=小于等于双目6自左至右判断前操作数是否小于等于后操作数>大于双目6自左至右判断前操作数是否大于后操作数>=大于等于双目6自左至右判断前操作数是否大于等于后操作数==等于双目7自左至右判断前操作数是否等于后操作数!=不等于双目7自左至右判断前操作数是否不等于后操作数
注意:
(1)在C语言中真为非零,假为零。而关系运算符判断的真结果为1,假为0。
【程序现场】3-3-5
#include<stdio.h>
int main(void)
{
printf("%d < %d = %d ",1,2,1<2);
printf("%d <= %d = %d ",1,2,1<=2);
printf("%d > %d = %d ",1,2,1>2);
printf("%d >= %d = %d ",2,2,2>=2);
printf("%d == %d = %d ",1,2,1==2);
printf("%d != %d = %d ",1,2,1!=2);
return 0;
}
3.2.6 逻辑运算符
内容:
运算符号名称目数优先级结合性作用!逻辑非单目2自右至左将操作数的真假取反&&逻辑与双目11自左至右将两操作数相与||逻辑或双目12自左至右将两操作数相或
注意:
(1)逻辑非的运算规则是:将非零的操作数返回0值,将值为零的操作数返回1值。
(2)逻辑与的运算规则是:当两操作数都为真时,结果为真;否则为假。当左操作数为假时,将不执行右表达式。
(3)逻辑与的运算规则是:至少一个操作数都为真时,结果为真;否则为假。当左操作数为真时,将不执行右表达式。
【程序现场】3-3-6
#include<stdio.h>
int main(void)
{
printf("!%d = %d ",1,!1);
printf("%d && %d = %d ",0,2,0&&2);
printf("%d || %d = %d ",0,2,0||2);
printf(" ");
int a,b=10,c=10;
a=1 && ++b || c--;
printf("a = %d ",a);
printf("b = %d ",b);
printf("c = %d ",c);
return 0;
}
3.2.7 位运算符
内容:
运算符号名称目数优先级结合性作用&按位与双目8自左至右将两操作数的二进制数相与|按位或双目10自左至右将两操作数的二进制数相或^按位异或双目9自左至右将两操作数的二进制数相异或~按位非单目2自右至左将操作数的二进制数取反<<左移双目5自左至右将操作数的二进制数左移>>右移双目5自左至右将操作数的二进制数右移
注意:
(1)左移时将最高位丢弃,最低位补0;右移时最低为丢弃,最高位不变。
【程序现场】3-3-7
#include<stdio.h>
int main(void)
{
printf("%d & %d = %d ",9,3,9&3);
printf("%d | %d = %d ",9,3,9|3);
printf("%d ^ %d = %d ",9,3,9^3);
printf("~%d = %d ",5,~5);
printf("%d << %d = %d ",-5,2,-5<<2);
printf("%d >> %d = %d ",-5,2,-5>>2);
return 0;
}
到此这篇编程入门基础知识 那些符号是什么(编程入门基础知识 那些符号是什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/haskellbc/19395.html