c语言表达式6>3,c语言笔记3运算符与表达式

运算符与表达式

知识点一

操作数:参与运算的具体对象。

运算符:指明了对操作数进行的某项运算。

表达式:表示一个求值得规则。它由变量、常量、运算符和函数、括号按一定规则组成。

书写表达式的细节:1,运算符不能相邻;2,括号可以改变运算顺序。

知识点二

运算符的分类:

b1916a8270bb149745b73b46c764834e613.jpg

知识点三

不同的运算符,优先执行就是优先级。

同等的运算符,从左往右执行就是结合性。

知识点三

算术表达式

1,算术运算符:+、-、*、/、%(加减乘除模)

2,算术表达式的结果仍然为数值;

3,c语言区分参与运算对象的数据类型的;

细节:(/)整数相除的结果为整数,实数相除结果为实数;(%)模运算操作数只能是整数

1 int x = 7 / 3;2 printf("%d\n", x);3 //2

4 float y = 7 / 3;5 printf("%f\n", y);6 //2.00000

7 float z = 7 / 3.0;8 printf("%f\n", z);9 //2.333333

取模运算

1 printf("%d", 5%3);//5=1*3+2 ,所以余数是2

2 printf("%d", 3%-5);//5=0*-5+3 ,所以余数是3

3 printf("%d", -5%3);//5=-1*3-2 ,所以余数是-2

1 //实现一个整数个位和十位互换 数据分离技术

2 intnum;3 scanf("%d", &num);4 intge;5 intshi;6 ge = num % 10;7 shi = num / 10;8

9 printf("输出值:%d", ge * 10 +shi);10

11 system("pause");

知识点四

自增自减运算符:将变量的值增加1或减少1。

1,只能对变量使用,不能用于常量和表达式如5++,(a+b)++;

2,前缀时是先运算、后引用,后缀时是先引用、后运算;

//代码1

short a = 3, b = 4;short x = 3, y = 4;short c = (++a)*b;//16

short c2 = (x++)*y;//12

printf("%d,%d\n",c,c2);//代码2

short num = 7;

printf("%d\n", ++num);//8

short num2 = 7;

printf("%d\n", num2++);//7

知识点五

赋值表达式:将一个数据(常量或表达式)赋给一个变量。

赋值运算符:+=  -=  *=  /=  %= 《=  》=  &=  ^=  |=。

1,结合:从右向左;

2,赋值语句左侧必须是变量,不能是常量或表达式如3=x-2*y; a+b=3;

3,赋值号右边表达式值自动转换成 其左边变量的类型;

4,嵌套;

int  i=2.56; //结果i=2;

a=b=c=5;//a=5,b=5,c=5

a=(b=10)/(c=2);//a=5,b=10,c=2

a+=a-=a*a//等价于a=a+(a=a-(a*a))----嵌套

知识点六

逗号表达式又称顺序表达式,整个表达式的值是最后那个逗号之后表达式的值。

int a = (a = 3, a * 3);//9

知识点七

关系表达式,就是做比较。

关系运算符:>、=、<=、==、!=。

一般形式:表示式1 关系运算符 表达式2。

1,关系表达式运算结果为1(真)、0(假);

2,两边表达式可以是整型、实型、字符型,字符是比较内存地址,不推荐实型进行等与不等比较,因为精度稳定导致结果不可预测。

1 //整型

2 printf("%d\n", 1 > 2);//0

3 printf("%d\n",1<2<3);//等价于 1<2 结果为1,1<3.最后结果为1

1)字符的比较是比较其ASCII码的大小

2)两个常量字符串,比较的是两个字符串在内存中的地址大小

#define CMD "calc"

voidmain(){//字符型

'a'+3>'b' ? printf("成立\n") : printf("不成立\n");//成立

char ch = 'a';char ch2 = 'a';

printf("%x,%x\n", &ch, &ch2);

ch==ch2 ? printf("相等\n") : printf("不相等\n");//相等

//结论:ch与ch2内存地址不一样,但空间值相等,字符型比较,是比较ASCII大小,所以相等。参见下面图一,图二

}voidmain2(){

//字符常量

CMD== "calc" ? printf("相等\n") : printf("不相等\n");//相等,比较内存地址大小

}

字符型比较运算内存分析图一:

4367f33c56f979e3710bd40d550afdf702b.jpg

字符型比较运算内存分析图二:

b02e5ab8de84502332cdf803ecb0bcfbfbe.jpg

知识点八

逻辑运算符:&& 、||、!

逻辑真值表

fb302ff660bb2fb86f487864c2d94836dca.jpg

1,短路原理,表达式1的值足以确定整个表达式的值就不再计算表达式2的值

知识点十

条件表达式又称三目运算符。

一般形式:表达式?条件一:条件二;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值