ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++语言导学 第一章 基础知识 - 1.2 程序

2021-12-14 09:02:01  阅读:128  来源: 互联网

标签:std square 源代码 1.2 程序 C++ 导学 main


第一章 基础知识

1.2 程序

C++是一种编译型语言。为了让程序运行,首先要用编译器处理源代码文本,生成目标文件,然后再用连接器将目标文件组合成可执行程序。一个C++程序通常包含多个源代码文件,通常简称为源文件(source file)。
在这里插入图片描述
可执行程序都是为特定的硬件、系统组合创建的,不具可移植性。比如说,Mac上的可执行程序就无法移植到windows PC上。当谈论C++程序的可移植性时,通常是指源代码的可移植性,即源代码可以在不同系统上成功编译并运行。

ISO的C++标准定义了两类实体:

  • 核心语言特性(core language feature),例如内置类型(如char和int)和循环(如for语句和while语句);
  • 标准库组件(standard-library component),比如容器(如vector和map)和I/O操作(如<<和getline())。

每个C++实现都提供标准库组件,它们其实也是非常普通的C++代码。换句话说,C++标准库可以用C++语言本身实现(仅在实现线程上下文切换这样的功能时才使用少量机器代码)。这意味着C++在面对大多数高要求的系统编程任务时既有丰富的表达力,同时也足够高效。

C++是一种静态类型语言,这意味着任何实体(如对象、值、名称和表达式)在使用时都必须已被编译器了解。对象的类型决定了能在该对象上执行的操作。

Hello, World!

最小的C++程序如下所示:

int main(){}	//最小的C++程序

这段代码定义了一个名为main的函数,该函数既不接受任何参数,也不做什么实际工作。

在C++中,花括号{ }表示成组的意思,上面的例子里,它指出函数体的首尾边界。从双斜线//开始直到该行结束是注释,注释只供人阅读和参考,编译器会直接略过注释。

每个C++程序必须有且只有一个名为main()的全局函数,它是程序执行的起点。如果main()返回一个int整数值,则它是程序返回给“系统”的值。如果main()不返回任何内容,则系统也会收到一个表示程序成功完成的值。main()返回非零值表示程序执行失败。并非每个操作系统和执行环境都会利用这个返回值:基于Linux/Unix的环境通常会用到,而基于Windows的环境很少会用到。

通常情况下,程序会产生一些输出。例如,下面这个程序输出 Hello, World!:

#include <iostream>
int main()
{
	std::cout<<”Hello, World!\n”;
}

#include这一行指示编译器把iostream中涉及的标准流I/O设施的声明包含(include)进来。如果没有这些声明的话,表达式

std::cout<<”Hello, World!\n”;

无法正确执行。运算符<<(“输出”)把它的第二个参数写入到第一个参数。在这个例子里,字符串字面值“Hello, World!\n”被写入到标准输出流std::cout。字符串字面值是指被一对双引号包围的字符序列。在字符串字面常量中,反斜线\紧跟另一个字符组成一个“特殊字符”。在这个例子中,\n是换行符,因此最终输出结果是Hello, World!后跟一个换行。

std::指出名字cout可在标准库名字空间中找到。本书在讨论标准特性时通常会省略掉std::,3.4节将介绍不使用显示限定符而让名字空间中的名字可见。

基本上所有可执行代码都要放在函数中,并且被main()直接或间接地调用。例如:

#include <iostream>			//包含(“引入”)I/O流库的声明
using namespace std;		//使得std中的名字变得可见,而无须再使得std::

double square(double x)		//计算一个双精度浮点数的平方
{
	return x*x;
}

void print_square(double x)
{
	cout<<“the square of ”<<x<<“ is ”<<square(x)<<”\n”;
}

int main()
{
	print_square(1.234);	//打印:the square of 1.234 is 1.52276
}

“返回类型”void表示函数print_square()不返回任何值。

标签:std,square,源代码,1.2,程序,C++,导学,main
来源: https://blog.csdn.net/qq_40660998/article/details/121893147

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有