平平无奇小佳佳又来啦~今天学的东西,怎么说,还是没达到自己的预期,学到一半被各种消息轰炸不得不爬出去解决工作。。
1.操作符
操作符
- 算数操作符
算数操作符还是比较好理解的,比如+-*,都是一些比较日常好懂的。在这里就提两个,一个是除“/”,另一个是取模操作符“%”。
除法要注意的是,如果定义的是int,那么除号两边都必须是整型;如果要实现浮点型,可以定义,并且只需要在除号的某一遍改成浮点型就行。
而取模操作符只能用于整型。
- 移位操作符
分为左移位与右移位。但要注意,移位操作符是只针对内存中的二进制位的。
例如有下面的代码
int main()
{
int a = 3;
int b = a << 1;
printf("%d", b);//
return 0;
}
a的初识值是3,而3的二进制代码为00000000000000000000000000000011,当使用移位操作符时,要指明移位的值给了谁(即b),是谁移位(即a),左移还是右移,移多少。移位后,整体二进制往左移一位,最后的用零补齐,即变成了000000000000000000000000000000110,它对应的字符是6,即b的值就是6.
- 位操作符
位操作符有三种,按位与&,按位或|,以及按位异或^。
来看这样一个代码。
int main()
{
int a = 3;
int b = 2;
int c = a & b;
int d = a | b;
int e = a ^ b;
printf("%d%d%d", c, d, e);
return 0;
}
00000000000000000000000000000011;
00000000000000000000000000000010;
按位与的意思是,两者均为一才为一,只要有0就为0,所以c的二进制码为
00000000000000000000000000000010.即c为2.
按位或的意思是,只要有一者为1就为1,两者均为0才为0,即d的二进制代码为
000000000000000000000000000000011.所以d为3;
按位异或的意思是,两者相同为0,两者相异为1.即e的二进制代码为
000000000000000000000000000000001;所以e为1.
- 赋值操作符
赋值操作符在我看来其实主要就是简化了代码。其中有最基本的赋值符=,也有以它为基础诞生的复杂运算符,如以下代码。
int main()
{
int a = 3;
a = a + 1;
a += 1;
a++;
printf("%d\n", a);
return 0;
}
事实上,这三个表达式的意思都是令a先加上1,然后再赋值给a。其他的复合运算符也是如此。先做运算,再赋值。
- 关键字
来看看一些常见的关键字。
"auto"这个关键字现在基本很少见到了,它的作用是定义自动变量。但其实大部分变量默认就是如此,所以一般不会用到。
"break","continue"这两个关键字在循环经常见到,前者为跳过循环,后者为跳过本次循环,但仍旧会进行循环。同样还有"default"这个关键字,也经常在循环见到。
"enum 枚举""struct 结构体""uinon 联合体"是三个可以自定义的类型,嗯目前我对他们了解还不是很深,等待下次遇见。
const 常属性 - 一般用它来修饰变量和指针(目前还不是很熟)