c++入门教程(四)

时间:2021-02-18 04:04:51

事前日常敲黑板

(1)今天涉及到的某些算式可能有些颠覆三观,请事先做好准备。

昨天有这样一段代码

void main(){  
int a;
a = 3;
int b;
b = a;
}

也稍微提了一下这里面的‘=’ 不是等于的意思,而是把 后面的值放到前面那个变量代表的空间中。这里的   ‘=’   就是一种用来进行运算的符号  也叫运算符,运算符是一种用来进行运算的符号,通常用来改变变量内容或得到某些结果。

例如:

void main(){
int a;
a = 3 + 4;
}
与前面的'=' 相似,这里的'+' 也是一种运算符,它的作用是得到   3 + 4 的结果 7 这里的作用就是得到结果。然后这里的 '='运算符的作用是 将 3 + 4 计算出来的结果 7 放到变量a代表的空间中这里的作用就是改变变量内容。(这里涉及到一些先算哪个的问题,暂时不考虑)。所以,这段程序执行完之后变量a代表的值是7。

既然‘+’可以用 那么相应的‘-’也是可以用的,然后是'*' (乘号) 和 '/'(除号)以及神秘的'%'(来得到余数) 例如:a=8%5;我们学过余数,正常来说8除以5等于1余3。所以这里8%5的结果就是余数3。当然这些加减乘除不仅仅可以用于常量,也可以用于变量。例如:

#include<iostream>
using namespace std;
void main(){
int a;
int b=18,c=5;
a = ((b-c+3)*3)%c;
cout<<a<<endl;
}
这里在运算时用到了()因为 计算机的这些操作符和正常的算式是一样的,有一个优先级的问题,比如乘号的优先级大于减号,所以如果减法和乘法同级时会先计算乘法,计算机也是一样因为*比-优先级高,所以想要先算减法的结果就要把前面的用小括号括起来。

上面的加减乘除和取模(%)是为了计算出一个结果,所以也叫  算术运算符


还有些运算符是为了比较两个量(可以使连个变量,或两个常量或一个变量一个常量之间的关系) 称为关系运算符

例如  >  <       >=(大于等于)      <=(小于等于)  ==(等于,用来判断两个值是否相等)  和  !=(不等于  用来判断两个值是否不相等)。如果与事实相符合那么结果是  '真'  否则  结果是 '假' (具体使用  暂时  不用管的,后面用到的时候会重新提到的。这里只是先介绍一下有这么一种东西)


还有一些类似于上面用到的'='  用来改变变量的值,这种一般称作  赋值运算符(用来把后面的值赋给前面的变量)

然后就是一些  骚操作  比如

+=

例:a += 3;   等效于    a = a + 3;  就是把a代表的值加上3的结果放回a代表的空间中

既然有了 += 这种神秘的操作   于是   -=   *=  /=  %= 也就都扑面而来了,具体用法和+=相同

例:

#include<iostream>
using namespace std;
void main(){
int a;
a = 0;
a += 3;
cout<<a<<endl;
int b;
b = 4;
b *= a;
cout<<b<<endl;
}



注:刚刚这些赋值运算符前面一定是变量  后面变量和常量都可以 甚至 还可以是一些神奇的东西。(重点在最后两行)

#include<iostream>
using namespace std;
void main(){
int a;
a = 0;
a += 3;
cout<<a<<endl;
int b;
b = 4;
b *= a;
cout<<b<<endl;
b -= (a+3);
cout<<b<<endl;
}


和+=这种操作  类似的还有个  ++   ,它的作用相当于  +=1    也就是说执行完 i++后和执行完i=i+1后 i的值是相同的 。但是有一点须要注意  ++ 既可以放在 变量后面  如 i++  也可以放到变量前面  如  ++i。它们两个的区别在于  ++ 在前面时  变量先自增1  然后再执行当前条语句。如果是++在后面 则先执行当前语句 然后再自增1 例如:

#include<iostream>
using namespace std;
void main(){
int a;
a = 0;
cout<<a++<<endl;
cout<<a<<endl;
}

结果是 0   1    因为第一个的
cout<<a++<<endl;相当于
cout<<a<<endl;
a = a + 1;

所以 第一次输出的是0  然后输出的是1。

当++放到变量前面时

#include<iostream>
using namespace std;
void main(){
int a;
a = 0;
cout<<++a<<endl;
cout<<a<<endl;
}

结果是1   1 因为

cout<<++a<<endl;相当于

a  = a + 1;

cout<<a<<endl;

注意:与++类似的还有一个--   当然  **  和 //  这种    不存在的