//单目操作符:逻辑操作符(!)
#include<stdio.h>
int main()
{//0表示假,非0表示真
int a = 0;
printf("%d\n", !a);//=1,!是非的意思
if (a)
{//如果a为真,做事
printf("真");
}
if (!a)
{//如果a为假,做事
printf("假");
}
}
//单目操作符:sizeof 计算类型或者变量的大小(以字节为单位)
#include<stdio.h>
int main()
{
int abc = 10;
//printf("%d\n", sizeof(int));
//这里int和abc都表示整数,32位,4个字节
printf("%d\n", sizeof(abc));
printf("%d\n", sizeof abc);
//sizeof不是函数可以省略()
int arr[10] = { 0 };//10*4=40
printf("%d\n",sizeof (arr));
printf("%d\n", sizeof(arr[0]));
int x = sizeof(arr)/sizeof(arr[0]);
printf("%d\n", x);
}
//单目操作符:~对一个数的二进制按位取反
//把所有二进制位中数字 1变成0,0变成1,整数在内存中存储的是补码
#include<stdio.h>
int main()
{
int a = 0;
printf("%d\n", ~a);
return 0;
}
小知识点:
整数在内存中存储的是补码,一个整数的二进制表示有3种:原码,反码和补码,正整数原反补码相同
负数补码计算:
Eg:-1(二进制时,第一位表示正负,0是正(+),1是负(-)
原码:1000 0000 0000 0000 0000 0000 0000 0001
反码:1111 1111 1111 1111 1111 1111 1111 1110//原码基础上符号不变,其他位按位取反
补码:1111 1111 1111 1111 1111 1111 1111 1111//反码加1