入门学习计算机第五天——各类操作符
编译器:Microsoft Visual Studio 2010
前言
记录第五天学习C语言的博客。
1,~ :对一个数的二进制按位取反。
例如:1010———>0101
int main()
{int a = 0; a = 00000000 00000000 00000000
int b = ~a; b= 11111111 11111111 11111111
printf("b=%d\n",b);
return 0;
}
为什么b= -1?
引出原码,反码,补码的概念。
负数在内存中存储的时候,存储的是二进制的补码。int b是有符号的整型。
b = 11111111 11111111 11111111 最高位是符号位,符号为是1就是负数,0是正数。
print函数打印出的是这个数的原码。
原码(符号为不变,其他位取反)—————>反码(+1)————>补码
反过来:
补码(-1)——————>反码(符号为不变,其他位取反)——————>原码
所以b = 11111111 11111111 11111111 为补码 转化成反码位11111111 11111111 11111110
转化成原码10000000 00000000 00000001,所以是-1
2、前置/后置 ++/–
后置++/–:
int main()
{ int a =10;
int b = a++;先赋值,后使用++
printf("%d\n",a);
printf("%d\n",b);
return 0;
}
前置++/–
int main()
{ int a =10;
int b = ++a;先使用++,后赋值
printf("%d\n",a);
printf("%d\n",b);
return 0;
}
3,* :强制访问操作符(解引用操作符)
4,(类型):强制类型转换(不建议)
int main()
{ int a =3.14
return 0;
}
如果不想看到这个警告就要进行强制类型转换,进行以下操作。
int main()
{ int a =(int)3.14;
return 0;
就没有警告了。
5,关系操作符
/ >= 大于等于
/> 大于
<= 小于等于
<小于
!= 用于测试“不相等” //==用于测试“相等”
6 , 逻辑操作符
&&:逻辑与
int main ()
{
int a = 3;真
int b = 5;真
int c = a&&b;真
return 0;
}
只要有一个为假,逻辑与的结果就为假。
||:逻辑或
只要有一个为真,逻辑或的结 果就为真。
6,条件操作符
exp1 ?exp2 : exp3;
如果表达式1是真,表达式2要执行,表达式2输出的结果就是整个表达式的结果。
如果表达式1是假的,表达式3要执行,表达式3输出的结果就是整个表达式的结果。
int main()
{ int a =10;
int b= 20;
int max = 0;
max = (a>b? a:b);
if (a>b)
max=a;
else
max= b;
printf("max= %d\n",max);
return 0;
输出结果如下:
[ ]:下标引用操作符
int main()
{ int arr[10]= {0};
arr[4];//[]—— 下标引用操作符
return 0;
}
():函数调用操作符
int Add(int x, int y)
{ int z =0;
int z = x+y;
return z;
}
int main()
{ int a =10;
int b = 20;
int sum = Add(a ,b);函数调用操作符
return 0;
}
计算机知识/代码知识(零碎)
1,
int main()
{ int a = 10;
printf("%d\n",sizeof (a));
printf("d\n",sizeof a);
printf("d\n",sizeof (int));
return 0;
}
三种写法都是对的。大小都是4个字节
2,大重点: 整数在内存中存储的时候,存储的是二进制的补码。负数在内存中存储的时候,存储的是二进制的补码。正数的原码,补码,反码相同。
鸽了三天的博客。内容也不多。哎懒了懒了