hello world还记得怎么写吗
首先要先写那两段程序的“心脏”
#include<iostream>
using namespace std;
接着呢?接着是一段程序的核心——主函数main
int main()
{
statement;
}
函数里面是什么呢?回想起我们最初的目的,那就是向屏幕输出Hello world这串文字,所以我们要用到cout这个输出语句
cout <<"Hello World!"<< endl;
然后就完事了吗?并不,我们定义的main函数是int类型的,必须给他一个相同类型的回复,所以我们返回一个0代表程序结束,并在这个返回0的语句处加入断点以检查我们是否成功输出Hello World
return 0;
至此,Hello World又复习一遍啦
#include<iostream>
using namespace std;
int main()
{
cout <<"Hello World!"<< endl;
return 0;
}
那今天我们要学点不一样的
众所周知,计算机最擅长的事情就是计算,我们当然不想止步于简单的输出几句话,而是要让计算机代替我们进行复杂的数学计算。
在计算之前,我们先了解一个概念:变量和常量
何为变量?变量的实质是存储数据的内存区域,我们更多认识到的是变量名和它所包含的数据,而不怎么会去关心它被存在了哪块内存之中。所以我们只需要知道,所谓变量,就是在程序运行的时候,这块被变量标识的内存区中的数据可以被改变,仅此而已。
说了这么一堆可能大家也懒得看,不如看点实例更能理解何为变量:
int a; //定义了一个名为a的变量
int b=123; //定义了一个名为b的变量,并给它赋值123
我们昨天说过,int是一种类型,中文名儿是整型,可以理解为整数。
我们用int类型定义了两个变量,分别是a和b。
a没有赋值,所以a变量是暂时没有数据的,专业术语是叫做“未初始化”。
而b变量我们将123赋值给它,也就是说b变量的数据就是我们赋值给的123,因此b变量是“已初始化”的变量。
通俗语言来说,a和b是两个名字,是我们凭空起的绰号。然后a这个绰号我们还没想好要用来叫谁,暂时搁这儿。而b绰号我们就用来叫123这个“人”。这时候,如果我们叫b这个名字,那么123就会被叫到,然后回答我们“干哈呢?” 。那如果我们叫a这个名字呢?不会发生任何事,因为我们都没决定好a是用来叫谁的,所以叫a这个名字,不会有任何“人”回应我们。
这也就意味着,如果我们使用了未初始化过的变量,程序就会出错!
变量知道了是什么意思,那常量也就很容易理解了。
如字面意思,常量相对于变量唯一的区别就是它的数据是不可改变的。我们看一下这段代码:
int a=5;
a=10;
a=66666;
我们先将变量a初始化为5,然后又将10赋值给a,最后再把66666赋值给a。也就是说变量a的数据经历了三次变化。那它可以变化一百次,一万次,一亿次吗?答案是Yes。
但是换做是常量,别说是三次了,一次也不行!
常量的定义相对于变量来说是多了一个const关键字
const int a=5;
a=10; //程序出错!因为常量的值不可以被改变!
需要注意的是,常量必须进行初始化,如果我们光定义一个常量,却不对它进行初始化,那么程序将会出错!
const int a; //程序出错!因为常量没有被初始化!
现在知道了变量和常量的概念,那我们就可以开始计算了!
先从简单的加减乘除开始,在进行编写代码之前,我们先学一个新的名词:运算符。说白了,运算符就是一种用于描述对数据进行操作的符号,加减乘除就是运算符其中的几种。
运算符有很多种,根据对操作数(参与运算符操作的数据的数量)的多少,可以分为单目运算符、双目运算符和三目运算符。
举几个例子:
单目运算符的话就是只有一个操作数,比如"!"(这不是感叹号,是表示取反的运算符)
双目运算符就是有俩操作数,比如我们最亲切的"+"
三目运算符只有一种,用的比较少,形式为"d1?d2:d3",暂时不用管它是啥
然后再了解一个名词:表达式,表达式可以是一个变量,也可以夹杂着很多复杂的运算符和一大堆变量常量。
比如说a是表达式
(b2-4ac/2a)也是表达式
接下来我们写个程序,这个程序能简单的进行加减乘除。
那么首先,程序的“心脏”必不可少,再次默写那两段代码:
#include<iostream>
using namespace std;
接着写出我们的主函数
#include<iostream>
using namespace std;
int main()
{
statement;
}
这时候我们就想了,我们要进行加减乘除,是不是得有个对象呢?谁加谁?谁又减谁?那我们就想到我们刚交的两位朋友了:变量和常量。
排除法,常量不能变,也就是说不能被运算符操作,那就只剩下一个可能性: 变量。
于是我们先定义两个变量,分别是a和b:
#include<iostream>
using namespace std;
int main()
{
int a,b;
//同类型可以放在一起定义
int a;
int b;
//也可以分开定义
int a=4,b=1;
//一起定义的同时还可以赋值
int a,b=1;
}
爱怎么定义怎么定义,那假如我们要a为4,b为6,然后让他们加起来呢?
我们这样写:
#include<iostream>
using namespace std;
int main()
{
int a=4,b=6;
cout <<a+b<< endl;
//直接将a+b的结果输出
int a=4,b=6,c;
c=a+b;
cout <<c<< endl;
//用c把a+b的结果存储起来,输出c
int a=4,b=6;
a=a+b;
cout <<a<< endl;
//把a+b的结果赋值给a,输出a,同理也可以赋值给b再输出b
}
上面是三种对a+b的运算,其实本质上都是一模一样的a加上b,并没有什么不同。主要的区别是对(a+b)这个结果的存储,第一种直接将(a+b)这个表达式输出,在程序中并没有任何一个变量对这个表达式的结果存储。也就是说只有你提到这个表达式,它才临时冒个泡。
而第二种呢,则是额外定义了一个变量c,把a+b的结果存了起来,也就是说在这段程序当中,有一个变量c永远存着a+b的结果,只要你想用,那它就在这儿。
第三种和第二种有些区别,它没有额外定义一个变量来对a+b的结果进行存储,而是直接用了本来参与运算的变量a。这导致了什么?导致了变量a原本的值4被a+b的结果10所覆盖。也就是说,我们以失去变量a的值为代价获得了a+b的值。
很容易的,我们可以推出一系列对于加减乘除的操作:
#include<iostream>
using namespace std;
int main()
{
int a=4,b=6,c;
c=a-b;
cout <<c<< endl;
//减法,结果c为-2
int x=24,y=4;
c=x*y;
cout <<c<< endl;
//乘法,c已经定义过,将x*y的值把a-b的结果覆盖
int a1=17,b1=3;
c=a1/b1;
cout <<c<< endl;
//除法,注意符号
}
需要注意的是,乘法的符号是*而不是x,除法的符号是/而不是%(这是取余的符号,以后会讲)
还有一个不得不提的问题,在用到除法运算符的时候,必须注意被除数不能是0!!!否则程序出错!!
这篇博客复习了C++中的Hello World程序,并深入介绍了变量和常量的概念。变量是存储数据的内存区域,可以改变其内容;而常量的数据是不可改变的。文章通过实例解释了如何定义、初始化和使用变量与常量,并引入了运算符和表达式,为后续的加减乘除运算铺垫。最后,通过代码展示了如何进行基本的算术运算,并提醒在除法运算中避免除以零的错误。
1413

被折叠的 条评论
为什么被折叠?



