文章目录
赋值操作符
赋值操作符包括=,+=,-=,*=,/=,<<=,>>=,%=,&=,|=,^=
赋值操作符的作用就是可以让你对前面不满意的值重新赋值,比如说下面这个,体重88千克,我们对此非常之不满意,那么我们就重新赋值,多重才满意就改成多少
int main()
{
int weight=88;
weight=50;
}
对于其他的,例如+=,其实就是进行一次加法运算,
b=b+5;
b+=5;
这两个是完全等价的,其他用法也一样。
单目操作符
什么是单目操作符?只有一个操作数的符号被称为单目操作符,像之前的 | ,他的两边都要有东西,他就是双目操作符。
单目操作符有
!,-,+,&,sizeof,~,–,++,*,(类型)
!的作用是逻辑反操作,我们知道在计算机语言中,0为假,非0为真,那么当我们在前面有一个变量为假,在下面的使用中我们要让他为真,就使用这个操作符
int main()
{
int flag=0;
int a=0;
if(!flag)
a++;
else
a--;
printf("a = %d",a);
return 0;
}
如上,我们要当!flag为真时a+1,为假a则减一,那么这个程序输出的结果应为1,
我们可以看到,确实如此。
接下来的-和+就是负值和正值的意思,没什么好说的。
sizeof的作用是计算操作数或者类型长度
int main()
{
int a = 0;
printf("%d", sizeof(a));
printf("%d", sizeof(int));
return 0;
}
a是整型,他的长度就是四,在计算如a这样的长度,可以使用a本身,也可使用他对应的数据类型,sizeof让人看到的第一眼就就觉得他是函数而不是操作符,但是我们可以使用下面的代码,a的括号去掉,,仍旧可行,可以不带括号便说明了他不是函数 ,而int的括号则不能去掉,这是语法规定
int main()
{
int a = 0;
printf("%d", sizeof a );
printf("%d", sizeof(int));
return 0;
}
~的作用是对一个数的二进制序列按位取反。
这里的按位取反包括符号位,全部0变1或者1变0
–和++是对变量的操作,作用是让变量+1或-1,但是,根据符号的位置不同,符号的运算逻辑也不同,以++举例
int main()
{
int a = 0;
int b = a++;
printf("b =%d\n", b);
int c = ++a;
printf("c =%d\n", c);
return 0;
}
++后置先使用,再++,前置则先++,再使用。上面的代码中,b=a++,因为是后置,所以先使用,把a的值赋给b,此时b=0,a成了1,再向下,++前置,a再加1,然后将值赋给c,最终,b=0,c=2.
(类型),括号中加数据类型,表示强制转换类型,
整型变量后面加小数,系统会报错,()可以解决。
int main()
{
int a=(int)3.1415926;
return 0;
}
这样就不会有警告了
最后是&和*,这两个一般是一块儿出现的,&表示取地址,*是解引用操作符
int main()
{
int a = 10;
&a;
int* pa;
*pa = 20;
return 0;
}
&可以将变量的地址取出,既然取出那就要存放,我们就要使用pa来存放a的地址,在这之前我们要int *pa,这就表示pa这个变量是指针变量,接下来我们就可以用pa来存放a的地址,不过在pa的前面要加一个解引用操作符,他的作用就是访问地址,可以通过pa存放的地址找到他所指向的对象。
关系操作符
关系操作符包括<,<=,>,>=,!=,==
分别表示小于,小于等于,大于,大于等于,不等,相等
这里要特别注意,两个 =才是判断两个数是否相等,=是赋值
逻辑操作符
逻辑操作符包括&&和||
&&是逻辑与,可以说是并且,||是逻辑或,或者的意思。我们一般使用他作为判断语句的条件内容来使用
条件操作符及逗号表达式
条件操作符可以称为三目操作符,有三个操作数,形式为
表达式1?表达式2:表达式3
运行逻辑是如果表达式1成立,则执行表达式2,佛偶这执行表达式3。他可以大大简化我们写代码,
int main()
{
int a = 3, b = 9;
int c = 0;
if (a > b)
c = a;
else
c = b;
printf("c = %d\n",c);
return 0;
}
这个代码是输出a和b之间的较大者,判断的逻辑我们写了四行,如果使用条件操作符,
int main()
{
int a = 3, b = 9;
int c = 0;
/*if (a > b)
c = a;
else
c = b;*/
a > b ? c = a : c = b;
printf("c = %d\n",c);
return 0;
}
如上,判断的4行代码只用一行就代替了,并且简单明了。
什么是逗号表达式?实际上就是若干个用逗号分开的表达式,他的运算是从左往右计算,并且将最后一个表达式的结果作为整个过程的最终结果
int main()
{
int a = 2, b = 6;
int c = 0;
if (a = a + b, c = a, b = a + 3, a = a / b, c = a + b)
printf("c = %d\n", c);
return 0;
}