C语言运算符

1.基本运算符

1.1 赋值运算符:=

在C语言中,=是一个赋值运算符,例如:bwm=2002;

在下面这个程序中:

#include <stdio.h>
int main(void)
{
	int jane, tarzan, cheeta;
	cheeta = tarzan = jane = 68;
	printf("		cheeta	tarzan	jane\n");
	printf("First round score %4d %8d %8d\n", cheeta, tarzan, jane);
	
	return 0;
}

在其他语言会回避三重赋值,但在C语言中完全没问题,赋值的顺序是从右往左。

1.2 除法运算符:/

整数除法和浮点数除法不同。浮点数除法的结果是浮点数,而整数除法的结果是整数。整数是没有小数部分的数。在C语言中,整数除法结果的小数部分被丢弃,这一过程被称为截断。

1.3 运算符优先级 

运算符优先级(从高到低)
运算符结合律
()从左往右
+ -(一元即正负号)从右往左
* / 从左往右
+ -(二元即加减)从左往右
=从右往左

注:结合律只适用于共享同一运算对象的运算符

1.4 sizeof运算符和size_t类型

sizeof运算符以字节为单位返回运算对象的大小。C语言规定,sizeof返回size_t类型的值。这是一个无符号整数类型。

1.5 递增运算符 ++

该运算符有两种方式。

1.++出现在其作用的变量前面,这是前缀模式;

2.++出现在其作用的变量后面,这是后缀模式;

例如:

#include <stdio.h>
int main(void)
{
	int a = 1, b = 1;
	int a_post, b_post;
	a_post = a++;
	b_post = ++b;
	printf("a	a_post	  b	  b_post \n");
	printf("%1d	%5d	%5d	%5d\n", a, a_post, b, b_post);
	
	return 0;
}

运行结果如下:

a       a_post    b       b_post
2           1       2       2

可以发现a和b都递增了1,但是a_post是a递增之前的值,b_post是b递增之后的值,这就是++前缀和后缀的区别。

1.6 递减运算符:--

递减运算符和递增运算符同理,这里就不在赘述。

递增和递减运算符都有很高的结合优先级,只有圆括号的优先级比它们高。

不过不要混淆这两个运算符的优先级和它们的求值顺序。例如:

y=2;
n=3;
num=(y + n++)*6;

把y和n的值代入上面得:

num=(2+3)*6=5*6=30

n的值只有在被使用之后才会递增为4.根据优先级规定,++只作用于n,不作用于y+n。即n++是表达式的一部分,可将其视为先使用n,再递增;而++n则表示先递增n,再使用。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值