今天我想要介绍一下关於C++的一些基本文法,还有一些我学到的写程序时须注意的小撇步。做为一个初学者,我认为培养良好的习惯还有关系,将有助於我写好程序。(因为网路上有很多写的比我还要好很多的文章,所以我会写得较像是笔记的形式,请见谅)
#include<iostream>
using namespace std;
main(){
cout << "Hello World! \n";
return 0;
}
相信很多初次学程序的人,写的第一个程序码就是"Hello World !"吧!第一次学的时候,我被告知要"先照抄,再理解",其实很多时候也是这样,你先把你不理解的东西记起来,等到未来某一天你就会突然了解了。
这段程序码的结果会长得像这样:
接下来我会一项一项的把程序码拆解。
首先第一个是
#include<iostream>
using namespace std;
这两句被称做为preprocessor,他们主要的功能,就是在compiler 做事之前,需要先做一些事情,才能让compiler可以顺利进行。
第一句 #include <iostream>
,<>中的档案,中文被称做标头档(header file),这些标头档可能是已经定义的函数或是变数,或是一些通用的东西(library)。例如是在C++中的standard library 中已经定义好的input & output。#include <iostream>
本身就是汇入这些定义好的东西,让compiler可以正常运作。
因此,其实也可以自己定义一个档案,例如:
#include "C:\ myheader.h";
(myheader.h就是已经写好的一个标头档)。
可以把标头档想像成一个堆满工具的房间,还有一个工具箱。Library(或是其他的标头档)就是那个房间,但是当你今天要出门的时候,你就必须把工具(定义的函数或变数)装在工具箱(用
#include<>
把工具呼叫出来)里面才能出门,而且每一天遇到的工作都不太一样,所以你工具箱里装的工具可能每天都不尽相同。
接下来,後面的using namespace std;
这句话的重点在Namespace这个词,中文被翻译成命名空间,这个东西是作为储存名称用的,当今天程序要写出像是cout
或是cin
等的程序码时,如果没有使用using namespace std;
就会让程序无法成功运作。而其中std
就是一个叫做standard的命名空间。
可以把命名空间想像成一个大公司,底下有很多不同职称的职员,拥有不同的员工编号(std或是其他的命名空间)。公司A有个职员叫做阿明,他的员工编号为
0908
,公司 B 有个职员叫做小美,他的员工编号也刚好是0908
。虽然两个人的员工编号恰好相同,但是因为他们待在不同的公司,所以在付他们薪水的时候,就不会因为他们的员工编号相同而搞错,因为他们存在於不同的命名空间里面。(1)
int main(){
cout << "Hello World! \n";
return 0;
}
这一段文字,被称作 主函数(main function),int main(){}
代表的是一种会回传整数给电脑的函数,也有其他的函数例如 void main(){}
或是wmain(){}
,但是他们的功用我还不太了解。在每一个C语言组成的程序中,一定要含有至少一个main function,如果没有写入main function的话,编译器就会发生错误。(2)详细的原因我也不太了解,不过既然没写会跑不出来,那为什麽不写呢XD? 好啦不是,可能未来有一天我会搞懂他的!
cout <<
这句话的意思是叫电脑印出後面的东西,箭头指向他,可以把它想像成把档案传进去印表机的概念,cin >>
则是反过来,把输入的东西传输到其他容器里面。使用的方法像是: cout << 0;
跑出的程序就会印出一个斗大的0!cin>>
的话会在下一篇跟宣告变数做说明。
而"Hello World! \n"
就是我们想要让电脑印出的东西了,但是身为初学者的人可能会觉得後面明明就还有两个字,但为什麽没有被印出来呢?\n
在程序语言中,被称做跳脱序列(escape sequence),在程序中,因为没有人按下Enter键让他们换行,或是按下Tab键让他们缩排,因此就需要使用这些跳脱序列让程序可以做到上述的事。
常用的跳脱序列有:
接下来return 0;
这句话看似对程序码没有起到太大的效用,但是它的存在对於主函数而言却很重要!简而言之,return 0;
的作用是让函数的进行终止,後面的0也可以改成其他的数值(即改变回传的值),但是有些主函数(void main()
)是不需要回传值的,但因为我也还没接触到所以先把他跳过。在程序读到return 0;
的时候,就会像是返回了一个标志,表示程序成功的执行完成了,可以退出了而如果不回传一个值的话,系统就会自己判定他是异常返回,会做出相对应的处置。(3)
但是其实现在C99的编译器已经会自动在编译的时候加上
return 0;
了,所以没有写到return时也不会发生错误了 (但还是要记得写啦!)
这一节的基本语法,虽然只是大海中的一粒细沙,还有很多东西是没有提到的,我会尽量去介绍他们的。这一段程序是非常基本的一段,感觉对於目前只需要解出问题的我没什麽帮助,像是return的作用,main()的作用花了一点时间去查,虽然说有些累,但是学到东西总是还蛮开心的呢!跟其他人比,我现在还是小弱鸡一个,得花更多时间变得跟他们一样强了!
最近的生活be like:
<<: Day 3【NFT】你那边还来得及,赶快 all in Bitcoin
夜间模式在电子书阅读器上通常效果不会很好,黑色的底色会造成很多残影。不过,因为我也会在一般手机上使用...
大家好,我是毛毛。ヾ(´∀ ˋ)ノ 废话不多说开始今天的解题Day~ 26. Remove Dupl...
这个是第四次参加铁人赛,并且也是第一次参加自我挑战组 ~ 想说这一次要放过自已一下, 就想说报个自我...
双开 WebView 并开启 Google Translate 网页 先来看看今天想要完成的功能的样...
如图 pancode: div 设计成 各种形状 三角形。五角形 六角形 的方法 制作参考引用 ht...