首页 > > > 先++还是先赋值?C语言这些知识一定要知道
赋值运算符=
在C语言第一篇的时候,写过C语言中“=”不等于数学中的“=”而是叫做赋值这么一个概念。在C中“=”的作用就是赋值。就是将右边的值(右值)赋予给左边的值(左值)。那么当这个“=”的作用为赋值的时候,下面的语句就可以运行了。
int i=0;
i=i+1;
在数学中,i会等于0。但在C语言中,i等于1,它的意思是把i加上1再赋值给i。可以理解先临时声明一个int类型的变量它的值是i+1的和,然后再将这个临时声明的变量赋值给i。这样子,这个语句就通顺了吧。赋值的一个规定就是必须是右值赋值给左值。不能和数学的等于号一样自变量两边都可以。
如3=x这样是不许的。
另外的在赋值的时候最终得变量类型会变成左值的变量类型。
int i=0;
double z=1.2;
i=z;
结果会是i=1,而不是小数。浮点型赋值给整数型会截取小数部分,就是把小数部分去掉,并不是四舍五入。反过来int赋值给double类型会变成小数
C语言
+-*
再讲讲+-和*这三个运算符,它们的用法和结果和数学中一样,只不过要注意变量的类型转换。例如:如果你把一个double和一个int相加,会变成什么类型呢?答案是double类型,为什么呢?
简单的想想就好了,1.2+1在数学中会等于2还是2.2呢?看,很清晰了吧。那么字符和int相加呢?答案会是int。因为字符它是ASCII(一个码表),本身就是数字。只不过在表达的时候是不一样的,也因此加一个int会变成了int型。
+-*这三个运算符的类型转换都是一样的,知其一就可以用其二咯。
C语言中的除号/
让我们看看我们的键盘,我们键盘上是不是没有数学的“÷”号?那么问题来了,在C语言中,我们如何去用除以呢?在看看键盘是不是有“/”这个符号,和分母分子中间那斜杆是不是一样,这就是C语言的除号了。用“/”代替“÷”。这样子也行,但是和数学中的“÷”号还是有差别的。先举个例子
5/2;
在数学上,上面这个5除以2的结果是2.5,但是在C里面是2。因为在C语言里面,数据都是有分类型的,5和2都是整数,用"/"去计算也是得到一个整数,2.5去掉小数部分就为2了。如果要计算结果是小数要怎么办呢?那就把5换为5.0或者把2换成2.0,在C语言中的类型转换也用到了运算符上,常用的变换方向是int和double计算会变成double型,char和int计算会变成int型。更多之间的转换,读者不妨多定义几个变量,看一下课本,编译一下。
上一篇我们学了变量,那么我们用两个int类型的变量相除也就是整数型除以整数型,那要怎么办?别忘了,上篇我们也学到了类型转换,而这里我们可以用强制类型转换,简单介绍一下强制类型转换的用法。
int x=5; int y=2;
(double)x/y;
x这个变量变成了括号里的类型double。结果也就是2.5。
同样的(int)x就会把x变成int型。
取模运算符%%
这个也很简单,就是数学中的取余数。
8%%3也是表示在算8除以3后余多少。这个运算符有一个比较特殊的地方了,就是运算符的左右两边都只能是整数型,如果不是的话编译器就会报错。所以对于变量,%%左右两边也都得是整数型的。
int a=8;int b=3;
a%%b;
小结:以上的+-*/%%运算符结合和赋值运算就可以解决我们日常中数学的简单运算了。运算顺序遵守的是先*/%%后+-,从左往右,如果有其他需求可以加括号改变运算顺序。
先++?还是先赋值?
现在来讲讲开头中的i++和++i,这两个运算符其实都等价于i=i+1这个语句,只不过和赋值运算符配合起来有点差别。
int a=0,b=0;
int x=a++;
int y=++b;
如上,a会等于0,b等于1。第二条语句可以等价于下面这个
x=a;
a=a+1;
第3条语句可以等价于下面这个
b=b+1;
y=b;
这样理解起来是不是很清晰了?要记住的话,就记++在前还是在后咯。在前就先++。
还有一种就是+=,-=,*=,/=,%%=这五种。就举下+=的栗子
int i=0;
i+=1;
i最后会变成1。可以把它理解为下面这句代码
i=i+1;
其他四种类似于+=的运算符也是一样的用法。
只不过C语言把它简略了。这就是C语言简洁的一个栗子了。
还有最后一个运算符,sizeof(),这个看起来像函数,它确实也可以算是一个函数,作用是返回一个数值表示变量类型的字节数。
int x=sizeof(int);
int y=sizeof(double);
x会等于4,因为int类型有四个字节,y=8,double类型有8个字符。
对于这些算术运算符的特性就是这些啦~
这篇推文只讲了特性,并没有举很多栗子,因为编程还是需要动手才记得牢,我写出来,你看会了也就只是知道了,但是不一定会写,可以自己动手搭配不同的变量对这些运算符进行计算,加深理解~
还有其他一两种运算符:如比较运算符,会在后面的推文搭配其他内容讲解~
补充一个小知识点:转义字符\t。
之前见过\n这个转义字符的作用是换行,接下来介绍\t。这个的作用是缩进
printf("\tHello world\n");
这样的代码就会先在行首空四个空格的空间然后再打印"Hello world",再换行。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/615/viewspace-3129372/ ,如需转载,请注明出处,否则将追究法律责任。