1.赋值运算符:“=”
"="是用来给赋值号左边的变量赋予数值的,这与我们的常识不相违背。
例如:
int a = 1;
相当于
int a;
a = 1;
定义了一个变量a,并且将数值3赋予了变量a。
但要注意,形如:
int a = b = c = 3;
的代码是错的,在定义变量的时候变量不能连等,但是在变量定义好了之后这样做是可以的。
对于不同类型的变量,在赋值的时候,会发生类型转换,这时会将等号右边的变量转换为左边的变量相同的类型。例如:
int a;
float b = 3.14159265358;
a = b;
printf("a = %d", a);
会发现得到的输出是a = 3。说明这时发生了类型转换,浮点型的变量b在被赋值给整数型的变量a时,其小数部分被截去,只留下整数部分。
2.算数运算符
在C语言中,基本的算术运算符有:"+","-","*","/","%"分别对应于加,减,乘,除还有取模。
其中取模运算的意义是求一个数除以另一个数的余数,例如:
int a = 10;
int b = 3;
printf("a%b = %d", a%b);
得到的结果将会是10除以3的余数1;
除了这五个以外,还有两个我们在编程中经常用到的运算符“++”和 “--”,这两个运算符分别叫做自增运算符和自减运算符,这两个运算符比较特别,而且在使用的时候经常容易混淆。
例如:
int a = 0;
printf("%d\n", a++);
printf("%d",a);
得到的输出将会是0和1,而
int a = 0;
printf("%d",++a);
printf("%d",a);
得到的输出都将会是1。
这是为什呢,因为“++”表示加一,当“++”放在变量前面的时候,表示将变量加一后,再拿去使用,而当“++”放在变量后面的时候,则表示先将变量拿去使用,然后再为变量加一。“--”与“++”相同。而且要注意,自增运算符不能用于表达式,也就是说,形如:
int a = 0;
printf("%d",(-a)++);
是错误的,由于这两个运算符的使用比较复杂,难于记忆,而且有时候还要涉及运算符的优先级问题,所以在使用的时候最好是先写一个测试小样例来确保自己的使用方式是正确的。
3.关系运算符
关系运算符包含“>”,"<",">=","<=","==","!=",其中前面四个的优先级高于后面两个,而算术运算符的优先级高于关系运算符,关系运算符的优先级又高于赋值运算符。
4.逻辑运算符
逻辑运算符有三种:与“&&”, 或"||",非"!"。
其优先级关系为!>&&>||。
使用方式:
int a = 4;
int b = 2;
if(b != 0 && a > 0){
printf("%d\n", a/b);
}
表示当除数b不为0并且a大于零的时候,输出a除以b的值。
5.其他运算符
条件运算符:
1.int a = 4;
2.int b = a>0 ? a:1;
3.printf("%d", b);
其中第二行就使用了条件运算符,其含义是:如果a大于0为真,则将:号之前的值赋予b,如果为假,则将:号之后的值赋予b;
强制类型转换:
float e = 2.71828;
int a = (int)e;
printf("%d\n",a);
通过在变量之前加一个括号,并且在括号里面写入想要的变量类型,可以将变量的值转换为想要的类型然后使用,比如赋值给左边的值。这里需要注意的是,进行强制类型转换后,原变量的类型和值都没有发生变化。
网友评论