c++教程总目录
第一课:c++第一课 输出“Hello word”
第二课:c++第二课 输出自定义字符图形
第三课:c++第三课 关于代码的一些知识
第四课:c++第四课 定义int型变量、变量赋值与输出
第五课:c++第五课 输入
第六课:c++第六课 c++语言常用类型
第七课:c++第七课 加法算数运算
第八课:c++第八课 运算原理
未完待续……
c++第三课 关于代码的一些知识
了解本节课的内容后,有帮助你写代码和读自己或别人的代码的效率。
上节课我们学习了在屏幕上输出字符组成的图形,代码:
#include<iostream>
using namespace std;
int main()
{
cout<<" *"<<endl;
cout<<" ***"<<endl;
cout<<" *****"<<endl;
cout<<" *******"<<endl;
cout<<"*********"<<endl;
return 0;
}
1.关于部分代码的省略
这样写虽然没错,但比较麻烦,每行都写cout和endl。
所以,cout和endl可以省略。
我们先看省略cout
编译器在编译文件时忽略换行、空格和注释,这三者也不占运行内存。上面的代码就可以写成以下形式:
#include <iostream>
using namespace std;
int main()
{
cout <<" *"<<endl;
cout <<" ***"<<endl;
cout <<" *****" << endl;
cout <<" *******"<<endl;
cout <<"*********"<<endl;
return 0;
}
当然,上面我只是走极端,大家写代码别写成这样,看起来很麻烦。
但这样编译器是通过的,也就证实了编译器忽略了换行和空格,关于注释待会讲。
既然编译器忽略空白字符(我们通常把换行空格称为空白字符),那么输出三角形的代码就可以写成以下形式:
#include<iostream>
using namespace std;
int main()
{
cout<<" *"<<endl
<<" ***"<<endl
<<" *****"<<endl
<<" *******"<<endl
<<"*********"<<endl;
return 0;
}
编译器通过。是不是这样看起来舒服多了?
但你要把前几行的分号删了,因为这5行代码都属于一条语句。
接下来省略回车。
上节课我们讲了,有些字符不能正常输出,比如反斜杠“\”。
因为反斜杠有特殊含义。下面的表格就是反斜杠+字母的含义
组合形式 | 效果 |
---|---|
\n | 换行 |
\t | 等于Tab键 |
\a | 响铃一声 |
\\ | 输出\ |
不好意思,我就记住这么点,大家如果好奇可以上网查。
哦,一看,\n等于换行,真好,可以代替那个麻烦的endl了!
于是上面的代码可以写成以下形式:
#include<iostream>
using namespace std;
int main()
{
cout<<" *\n"
<<" ***\n"
<<" *****\n"
<<" *******\n"
<<"*********\n";
return 0;
}
这样也是可以的。
但最好不要这样写,因为\n属于引号内输出的内容,很有可能看迷糊了。
根据我的个人经验,超过两个endl在用\n,比如下面的一行代码:
cout<<"123"<<endl<<endl;
就可以写成:
cout<<"123\n\n";
但如果代码是这个样子:
cout<<"123"<<endl;
最好不要改,因为这样看上去方便一些,用\n很可能让自己或别人认为你要输出“\n”,很容易就会盯着屏幕,自言自语:怎么不输出呢?怎么不输出呢?
但这只是我的经验,也可以不吸取!
2.代码的注释
在写代码时,最好要养成写注释的好习惯。
因为:
比如你哪天写了一个10万行的代码,经过调试,正确!哈哈,好高兴呀,做下一道题!
两年后……
突然想起了那个10万行的代码,拿出来看一看,借鉴借鉴以前的思路。
一看,天哪!这一句什么意思啊?完了,从头梳理吧!
一星期后……
终于明白了,原来是这个意思呀!
这就是不写注释的后果!
注释就是为了你自己和别人明白你写的代码是什么意思,以防发生以上例子。
关于注释有两种写法:
第一种://
例如输出三角形的代码:
#include<iostream>
using namespace std;
int main()
{
cout<<" *"<<endl //在屏幕上输出三角形
<<" ***"<<endl
<<" *****"<<endl
<<" *******"<<endl
<<"*********"<<endl;
return 0;
}
我们就明白了,这个输出是输出三角形的!
虽然一眼就能看出来,但碰到较难的算法时,要没写注释,你根本不明白这一堆代码是干啥的。
这种注释只能注释一行,在注释符号//后面的内容全部被注释,注释的内容编译器自动跳过,同空格、回车一样,不占用内存
你在注释里些什么无所谓,就是写个cout也没事,反正编译器跳过。
另一种是注释多行的。
比如你要把cout那五行全注释,就得一行一行来,麻烦!
所以,用这种:
/*
*/
比如:
/*
cout<<" *"<<endl
<<" ***"<<endl
<<" *****"<<endl
<<" *******"<<endl
<<"*********"<<endl;
*/
也可以:
/*cout<<" *"<<endl
<<" ***"<<endl
<<" *****"<<endl
<<" *******"<<endl
<<"*********"<<endl;*/
文字注释的那一段也可以:
cout<<" *"<<endl /*在屏幕上输出三角形*/
编译器从反斜杠星号到星号反斜杠(不知道为什么,打不出/*,所以汉字代替)之间的所有文字全被注释。
如果你在注释结束符后面写个cout,就会报错!
要是在里面。就没事。可能读起来比较费事,我们用代码来展示一下:
cout<<" *"<<endl /*在屏幕上输出三角形*/cout
报错!
cout<<" *"<<endl /*在屏幕上输出三角形cout*/
通过!
好了,本节课就到这里了。
由于作者水平有限,文章中难免有误,请大神们给出指正!