第0章 初窥门径

 

以控制台程序为例:

#include <iostream>

 

int main()

{

    // 在控制台屏幕输出Hello world!并换行

    std::cout<<"Hello world!"<<std::endl;

    return 0;

}

 

这是一个简单的控制台应用程序,运行结果是在控制台屏幕上输出Hello world!并换行。我们可以从这个程序来初窥C++编程门径。

 

C++是一门语言,我们想要使用这门语言,首先必须学会其规则,也就是语法,然后才能谈用好这门语言。从第一行看 #include <iostream> 这是一个编译命令,作用是包含标准头文件iostreamC++文件分为头文件和源文件两种,这也是C++支持分离编译的一种设施。简单说来,头文件是一些声明、定义,而源文件就是主要的实现代码,当然也有复杂的另外一些情形。只要我们需要用到一些别人或者自己写好的代码,那么一般都需要引用这些代码相关的头文件,这里我们要使用到标准库的输出设施,所以我们引用其头文件iostream

 

这里有一个概念:标准库。学习C++语言其实可以简单的分为学习C++语言核心语法和学习C++标准库,标准库是C++标准的不可缺少的组成部分。为什么要提倡使用标准库呢?因为对于C++,各大编译器厂商都有自己各自不同的实现,但是他们都要遵守C++标准,所以说一个严格的编译器厂商会按照标准语义来实现C++,那么我们写的代码只要符合标准,那么在这些编译器上都可以很好的编译。但是如果是使用一些非标准的库或者语法,那么这些代码就很难在其他编译器上很好实现了,可能其他编译器并不提供这样的语法或者库。C++标准库头文件都是没有后缀名的文本文件,这是和C语言头文件和早期C++头文件相区别的地方。

 

前面我提到了我们使用了标准库输出设施,那么在代码中这个设施是什么呢?他就是std::cout。这是一个对象,由标准库定义的对象。这里有个语法,::(域控制符)的使用,在::左边是域名(在这里是名字空间std),右边是域中的某个名字(这里是名字空间std中的名字cout)。我们在编写程序的时候都会对不同的对象赋予不同的名字以区别,然而我们也经常使用标准库或者其他第三方库和代码,这样就有可能使用到相同的名字来命名不同的对象,导致编译器无法正确判断。为了减少这样的情况产生,C++特别提供了域控制这个概念,把名字包含到域中,那么一个对象的名字就有了前缀,相对而言重复的几率就变小了。C++标准库也使用了这个概念,定义了一个名为std的名字空间域,所有标准库的名字都在这个域中,所以我们使用标准库的名字就需要使用std::来限定。

 

标准库输出设施std::cout的使用方法之一:使用<<操作符。我们可以将这个操作理解为向std::cout这个对象放入<<操作符右边的值。代码中对<<操作符进行了级联使用,在一行中连续的使用了两次,以后我们将介绍用什么技巧来实现级联操作。

 

除了标准库输出设施std::cout以外,我们还可以看到std::endl,通过前面的讲解我们想大家都应该猜想到,这也是标准库的一个设施吧,因为它也被std::限定。没错,它的确是标准库的一个设施,作用是将换行放入输出对象中,其会产生一个副作用:在标准库设施定义的输出设备上将输出对象中存放的值全部显示出来,这也是为什么我们能够在控制台窗口看到输出Hello world!并换行的原因。

 

// 符号是一行注释的开始,表示从这个符号开始到这一行结束都是注释部分。注释是写在代码中,但不会被编译的一些文本。为什么要注释呢?作为一个程序员,和我们打交道的不仅仅是计算机,还有其他的程序员。也就是说,我们不仅要让计算机明白我们要干什么,还得让其他需要阅读代码的人能够轻松的知道我们的意图。C++中有两种注释的方式,这种单行注释只是其中一种,还有一种将在以后介绍。

 

int main()

{

return 0;

}

这里我将中间的部分代码省略来讲,因为这样能够表示其最简单的结构。这是一个函数,C++中函数使用返回值类型说明,参数列表,函数体,返回值这些概念。int就是这个函数的返回值类型说明,表示这个函数返回一个int类型的值。函数的名字是main,后面紧接的()是参数列表说明,在这个例子中没有参数列表。然后后面的 {} 是函数体的标志,从 { 开始到 } 结束被称为函数体,这个是成对匹配出现的,可以嵌套使用。函数体就是表示这个函数到底要做些什么工作的代码,如果函数带有返回值类型说明(返回值不为空),那么,这里的return语句就是必要的了,这也是结束函数的地方,其后的值也就是这个函数所返回的值。

 

函数是用来被调用的,这个名为main的函数是控制台应用程序的入口函数,也是操作系统自动调用的函数。不能更换成其他的任何名字。当然,学到后面大家会知道这样的入口名字不止这一个,而且参数列表也有不为空的情况。

 

现在大家知道了C++的一些语法了,同时还接触到了标准库的一些东西,这是个可以编译运行的完整代码,有兴趣的可以将其拷贝到自己的编译器上编译运行,看看其输出结果,这样更能让你领会到其含义。

 

这是我的C++课堂的第0章 初窥门径,这里我们讲得稍微啰嗦了一些,目的是让大家能够更为清楚的了解到一些知识,在以后的课堂中,我会越来越简练,一些重复的知识我就当大家已经掌握,不再累赘。

 

下一课:C++课堂第1章 字符串 希望我的课堂对大家学习C++有所帮助

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值