C++之Hello World
创始人
2024-01-20 23:23:43
0

概览

编程语言历史

机器语言:00110101…最初始的计算机内部语言,不同机器使用的语言甚至不同

汇编语言:利用简单符号(a DB 7H…)对机器语言进行了一定的抽象,增加了可读性,更加人性化.在一定程度上仍然依赖硬件,属于低级的语言

高级语言:使用文字通过编译器被翻译为机器语言,不依赖硬件.编译器的存在增加了高级语言的可移植性.

编程步骤

源代码→编译器→目标代码→链接程序(链接启动代码和库代码)→可执行代码

关于gcc与g++

gcc是编译c程序使用

g++是编译c++程序使用

第一个hello world

不懂没关系,先使代码运行起来再说!

#include int main()
{using namespace std;cout << "Hello World!" << endl;cout << "Hello World!\n" << endl;return 0;
}

运行结果
在这里插入图片描述

预处理器和iostream文件

如果你想在程序中输入输出一些内容,则相面的代码是必须的

#include 
using namespace std;

预处理器主要在编译之前做一些添加、替换文本之类的操作,#define A 100就使得预处理器把程序中的A替换为100.#include 在编译前将被替换为 iostream 文件的内容.原始文件并不会被修改,源代码和iostream文件将被合并为一个复合文件,接着进行后续的编译工作

头文件

#include

像iostream这样的文件叫做包含文件(including file)或头文件(header file),如果你要使用输入输出功能,则需要包含iostream。

C语言中的头文件扩展名为h,C++保留了这种格式.同时,C++对头文件名进行了内容及名称的改进,一些头文件不需要扩展名且以c开头以表明它来自C语言.对于纯粹属于C++的头文件来说,没有扩展名h不仅是形式上的变化,这样的头文件内部可以包含名称空间

using namespace std

名称空间,这是c的一项特性,它可以用于区分同名函数(类,变量等组件都适用),如apple::cout和google::cout则是两个不同名函数(暂时这样记忆).上面代码中的cout实际上是std::cout,即如果没有写using namespace std,则cout需要写为 std::cout.同理.endl写为std::endl.

如果使用的头文件为iostream.h则不需要使用名称空间.

using是编译指令,using使得该名称空间中的所有名称都可用,大型项目中更准确的做法是只用using声明你需要的名称

using std::cout;
using std::cin;

使用cout输出

插入运算符 << 是C++对象的属性,它可以将右侧的信息插入到流中.实际上<<也是左移运算符,这里就是一个重载的例子,即编译器会根据上下文的参数去选择插入运算.类似的还有&符号,它既表示取地址,又表示and运算符.*即表示乘法,又表示对指针接触引用.

关于换行

C++提供控制符endl也是在iostream中定义的.

换行符即转义序列\n是C语言提供的.

\nendl均可实现换行效果.如果打印的语句只是简单的数字时使用endl对打字会比较方便,反之使用\n比较好

main()函数

是程序的起始位置(和大多数语言一样),它被启动代码调用,而启动代码由操作系统调用.main()函数可以有参数,通常它的参数由系统传入.

main()		//C风格,在C语言中main()函数可以省略返回类型(相当于int类型),但C++中淘汰了这种做法.
int main()	//C++适用
int main(void)//C++适用,与上面一条语句等价
void main()	//可以,但不建议,在一些系统上不会工作
//=====================================================
int main(void)//这是最好的做法,

关于main()函数的返回语句:C++中的main函数如果没有return语句,则他会默认隐含return 0;,这仅限于main().

main()函数是必须有的么?
  • 一些DDL模块不是独立的一个程序
  • 一些单片机程序不需要操作系统,同时函数名就是地址,他们通过地址寻找函数

因此上面这些情况下不需要main()函数.

常规的独立程序必须由main()函数.

main()函数中的返回值被返回给谁了?

可以将操作系统看作main()的调用程序,因此返回值被返回给操作系统了.通常的约定是,退出值为0则意味着程序运行成功,非零则代表出现问题.假如C++程序无法打开某个文件,可以将其设计为返回一个非零值.

C++的注释

行注释: //注释一行

块注释: /*注释多行*/,多个注释之间不能嵌套.块注释可以写在语句里,但不建议这样做.如下

#include int main()
{using namespace std;cout << "Hello World!" << /* 呵呵*/endl;cout << "Hello World!\n"<< endl;			//这种写法也可以return 0;
}

/**/注释实际来源于C语言

初步学习语句

声明变量

int carrots

声明通常指出了要存储的数据类型以及存储的数据的名称.

一些语言要求声明必须放在函数或过程的开始位置,但C++并不这么要求.C++中只需要在首次使用变量前声明它.这种方法也有缺点,就是声明语句比较分散,对于使用了哪些变量不能一目了然.

赋值语句

赋值语句将值赋给存储单元

carrots=25;carrots=carrots-1;

C++中赋值语句可以连续使用,11将先赋给c,然后c的值将赋给b…

int a;
int b;
int c;
carrots=a=b=c=11;//赋值将从向左依次进行

cout

cout << carrots;

上面的cout并不会打印carrots,而是会打印存储在carrots中的数值.首先,cout会将carrots替换为其当前值,然后把值转换为对应的输出字符.无论怎样,cout最终输出的都是字符串形式数据

printf()是C中的打印语句,cout是c++中的一种对象,他比printf()更加智能.

cout的拼接:多条输出语句可以写在一行,也可以分开

cout<<"hello"<<"world"<

cin

cin是和cout相对的用于输入的对象

cin >> carrots;

信息从cin流向carrots,输入时cin使用>>运算符从输入流中抽取字符,通常需要在运算符右侧提供一个变量以接收抽取的信息.cin也是一个智能对象,它可以将输入的字符转换为接收信息的变量能够接受的形式.

初步认识函数

C++程序应当为使用每个函数提供函数原型,应在首次使用函数前提供原型
函数原型之于函数就如同变量声明之于变量
库文件中包含了函数的编译代码,头文件中包含了原型.

一些函数原型变体

int rand(void)//关键字void代表该函数不接受任何参数
int rand()//隐式的包含void参数,与上面一条等价
void rand()//void指出函数没有返回值
int x=rand(a)//错误,没有返回值的函数不能放在赋值语句或表达式中

自定义函数

如果函数定义在前,使用在后,则没有函数原型程序也可运行.这是因为程序是自上至下编译的,是能够识别你的函数的.

函数定义中不能嵌套定义函数

关于关键字
main不是关键字,他是一个必不可少的函数名.实际上是可以将其作为函数名的,但在一些神秘情况将其作为函数名会引发错误,因此不建议将main作为变量名.
其他函数名和对象名也不能是关键字,否则这回把编译器搞糊涂.也就是说在不适用cout对象的情况下则可以使用cout作为变量名.

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...