今天我们来了解一下六个较为常见的单目操作符。服务器托管网分别是! – sizeof ~ ++ 以及强制类型转换。
1、首先我们先来了解一下!的用法。我们知道在C语言中,0表示假,而其他非0的都表示真。而!的用法就是“非”,把真的转为假,假的转为真。举个简单的例子:
#include
int main()
{
int a=10;
printf("%d",a);
printf("%d",!a);
return 0;
}
2、负号-,这个也不需多言,就是数学中的负号,把正数转为负数,负数转为正数。
3、sizeof输出类型长度操作符
我们知道int整型是4个字节长度,double是8个字节长度。比如
int a=10;
printf("%d",sizeof(int));//或者printf("%d",sizeof(a));
打印结果是4,输出类型长度的操作符。
4、波浪号~按位取反(二进制)
波浪号的意思是把一个数的二进制数的每一位都取反,也就是反码。但在C语言中的反码和我们在数字逻辑中计算的会有所不同。接下来我会详细介绍。我们先由一个例子来引入:
#include
int main(){
int a=0;
int b=~a;
printf("%d",b);
return 0;
}
此时的输出结果是什么?
相信大多数人是这样想的。a是0,所以a的二进制也是0,而b是a的按位取反,所以输出1.
但这个结果是错误的。正确的答案是-1.
为什么?
首先我们刚刚说到了int在空间中占4个字节,也就是占4个地址,换算成bit就是32位的比特位。也就是说0的二进制数列其实是32个0,而把32个0按位取反之后变成了32个1,这样为什么结果不是二的三十二次方减一呢,因为32个1是一个负数的补码,要转回原码表示,先减一然后除了符号位都按位取反,得出结果是1(30个0)1,也就是-1.
5、++,–加一/减一单目操作符
举个例子:
#include
int main(){
int a=10;
int b=a++;
printf("%d %d",a,b);
return 0;
}
输出的结果是11 10.因为后置++是先赋值后+1,前置则反之。–同理。
6、强制类型转换
我们知道int是整型变量,如果我们打出int a=3.14;这样的代码,显然会报错。那么怎么样才能纠正?int a=(int)3.14则成立,意思就是先把3.14这个浮点数强制类型转换成int类型,也就是先把3.14变成3,再赋值给a。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,服务器托管网IDC机房托管, http://www.fwqtg.net
二分查找(Binary Search)是一种在有序数组中查找特定元素的高效算法。它的基本思想是将目标值与数组中间的元素进行比较,如果目标值小于中间元素,则在数组的左半部分继续查找,否则在右半部分查找,不断缩小搜索范围,直到找到目标值或确定目标值不存在为止。 二…