c++入门教程(四)
来源:互联网 发布:程序员证书考试时间 编辑:程序博客网 时间:2024/05/16 10:36
事前日常敲黑板
(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;
注意:与++类似的还有一个-- 当然 ** 和 // 这种 不存在的
- Visual C++/MFC入门教程(四)
- Visual C++/MFC入门教程(四)
- lua的入门教程-- C++(四)
- objective-c快速入门教程(四)
- BootStrap入门教程 (四)
- BootStrap入门教程 (四)
- BootStrap入门教程 (四)
- BootStrap入门教程 (四)
- BootStrap入门教程 (四)
- ReportStudio入门教程(四) - 过滤器
- BootStrap入门教程 (四)
- BootStrap入门教程 (四)
- BootStrap入门教程 (四)
- Git的入门教程<四>
- BootStrap入门教程 (四)
- SpringSecurity3.1入门教程(四)
- BootStrap入门教程 (四)
- Docker 入门教程(四)
- 大数据之始
- 设计模式(10) 迭代器模式--行为型
- scala final val 和 val 的区别
- 很炫酷的一些view,可以整合到项目里
- Winform程序在Win10下面界面布局混乱的情况
- c++入门教程(四)
- PHP AJAX Live Search详解
- 第一个博客
- 整理JavaScript中的各种字面量
- Elasticserch与Mysql实现数据同步
- JavaScript中判断数据类型的几种方法
- 最长回文子串 V2(Manacher算法)
- java 异常
- 多线程作业