今天学习的比较少,主要是围绕着操作符来学习的,明天要开会。。估计会议也要开到10点,明天学习应该也会托节奏,加紧尽快学习吧。
不过已经有了方向,C语言学到五子棋就可以了,以后的学习规划我是打算先从C入手,而后转向java与软件测试方向,目前来讲也只是皮毛,因为java与软件测试前期学习的内容类似,所以今后再选择这个分岔路口啦。先把C语言学号要紧!
一、单目操作符:
a + b +为双目操作符
其中几种类型详细讲一下:
~ :按位取反:把所有二进制位中的数字,1变成0 0变成1
#includeint main() { int a = 0; printf("%dn", ~a); //打印二进制位取反 return 0; }
二进制位取反
整数在内存中存储的是 补码~
0的二进制为 00000000000000000000000000000000
0取反后为 11111111111111111111111111111111 补码
一个整数的二进制的表示有三种:
原码 反码 补码
11111111111111111111111111111111 是-1的补码
原码 = ~反码 = 补码 -1
11111111111111111111111111111111 -1 = 11111111111111111111111111111110
~11111111111111111111111111111110 =10000000000000000000000000000001
其中开头为1 为负值,所以 printf == -1
正数的原码 反码 补码 都一样~
前置、后置 - -
前置、后置 + +
#includeint main() { int a = 1; int b = --a; //前置 - - //先减少 再取值 printf("%dn", b);// 0 printf("%dn", a);// 0 int c = a--; printf("%dn", b);//1 printf("%dn", c);//0 //因为前置++ a=0 ++1 ==1 return 0;
前置++ 与后置 ++ 的区别就是 先运算与后运算的区别。
int main()
{
int a = 1;
int b = a--;
printf("%dn", a); == 0
printf("%dn", b); == 1
return 0;
}
二、强制类型转换:
int main()
{
int a = (int)3.12;
//强制类型转换
//正常为double类型
return 0;
}
三、关系操作符:
&& 并且
|| 或
#includeint main() { int a = 1; int b = 2; int c = a && b; //两个同为真(>0时) 为真 printf("%dn", c); int d = a || b; printf("%dn", d); //两个其中一个为真时 为真 return 0; }
因为所以 否则的关系
四、条件操作符:exp1?exp2:exp3
#includeint main() { int a = 0; int b = 3; int max = 0; //if (a > b) // max = a; //else // max = b; //如果a大于b 那么就是a 否则 为b max = a > b ? a : b; //条件操作符 //如果a大于b 那么就是a 否则 为b printf("%dn", max); return 0; }
因为所以 否则的关系
五、逗号表达式
#includeint main() { int a = 0; int b = 3; int c = 5; //1 //-4 //1 int sum = (a = a + 1, b = a - 5,c = b +3); //从左到右依次计算,最后sum为最后计算的数字 printf("%dn", sum); return 0; }
操作符:
[] 数组操作符:例如 int a[] = {1,2,3,4,5,6,7};
() 函数操作符:例printf()



