C++程序简单示例

目录
  • 1、注释
  • 2、include
  • 3、main函数
  • 4、命名空间
  • 5、cout

前言:

很多小伙伴反应想要用C++LeetCode,但是对于C++语法不熟悉,对于很多算法和数据结构也不够了解。这就导致了刷题的时候需要四处查询资料,非常的麻烦。

我们先来看一段C++的示例代码:

// my first cpp file
#include <iostream>
int main() {
    using namespace std;
    cout << "hellworld" << endl;
    return 0;
}

这段代码虽然很短,但几个重要的要素都包含了,如果只是用来刷题,会发现基本上也只会用到这些语法。

我们一行一行来看。

1、注释

首先是第一行,第一行表示的C++当中的注释。C语言当中的/**/的多行注释方法同样支持,但为了避免潜在的问题,尽量使用C++类型的注释。

2、include

第二行是预编译指令include,这里的预编译指令是一个专业名词,表示在编译之前预先执行的指令。C++当中的预编译指令有好几种,除了include之外还有defineifdefundef等等,我们后面遇到了再说。

include这个指令会引入一个源代码文件,后面跟着的是一个包含文件名,也叫头文件名。C语言中的头文件以.h结尾,而C++当中兼容了C语言的头文件,只不过将其重新命名,去掉了末尾的.h,而换成了c开头。比如math.h文件替换成了cmath

在这行代码当中我们include的头文件叫做iostreamiostream为C++的标准输入输出库,用来在终端读入或者打印文本信息。iostream可以拆开理解成iostream,其中io表示inputoutput即输入输出,stream表示流,即使用流形式进行io。

3、main函数

main函数是C++程序的入口函数,C++标准当中定义的main函数类型是int。返回0表示程序正常退出,所以一般我们要在main函数的最后写上return 0

C++的main函数通常有两种写法,一种是参数留空,一种是定义参数数量以及参数值。

int main() {}
int main(int argc, char* argv[]) {}

关于main函数的传参方法,以及参数使用方法同样会在之后介绍,初学者随便使用哪一种都是一样的。

注意,有些编译器比如vc6.0等没有严格遵循gcc规范,导致支持void类型的main函数。建议放弃此类不规范的编译器,以免代码无法迁移,并且养成不好的编码习惯。

4、命名空间

命名空间是C++当中的特性,用来解决大型项目名称冲突的问题。

有可能多个程序员同时开发了getValue函数,但当我们编译运行的时候,编译器无法知道我们究竟调用的是哪一个getValue,所以需要使用命名空间进行区分。比如A程序员将getValue放入了名为A的命名空间当中,那么当我们调用getValue的时候就需要写成A::getValue,B程序员将它放入了名为B的命名空间中,同样调用的时候写成B::getValue

然而常用的许多函数、变量都明明在std的命名空间当中,这就意味着当我们使用这类内容的时候,都需要在前面加上std::,比如标准输出的cout命令,需要写成std::cout

这会导致编码变得繁琐,所以C++提供了using namespace的功能,即告诉编译器当前使用的命名空间名称,这样我们在调用该命名空间的内容时,可以省略前缀。

除了using namespace之外我们也可以单独使用using命令,例如:

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

5、cout

标准输出工具,可以将字符串输出在终端中。

cout本身是一个预定义的对象,它知道如何显示字符串、数字和单个字符。<<符号表示将字符串发送给cout,由cout输出在屏幕当中。<<符号表示了信息流动的路径,<<符号可以多个叠加连接,

比如:

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

endl表示当前输出行的结束,cout遇到endl时会重启一行,否则则会接在同一行后面继续输出。

除了使用endl之外,我们也可以使用换行符来达到同样的效果,如:

cout << "hello" << "world\n";

C++ Primer当中建议在输出由内容的字符串时使用换行符,而非endl,其他情况下使用endl,而非换行符。这两者绝大多数情况下是等价的,在一些特殊情况下可能会构成差异。

endl确保程序继续运行前刷新输出,而使用"\n"则意味着有时候需要在输入信息之后才会出现提示。当然这不是重点,我们遇到的概率也非常小,如果实在搞不清楚也不用纠结,统一使用endl也行。

到此这篇关于C++程序简单示例的文章就介绍到这了,更多相关C++程序示例内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++ 程序流程结构详解

    目录 1.选择结构 1.1 判断语句if 1.单行if语句 if 2.多行if语句 if...else 3.多条件if语句 if...else if...else if ...else 4.嵌套if语句 1.2 三目运算符判断 1.3 开关语句switch 2.循环结构 2.1 while 2.2 do...while 2.3 for 2.4 循环控制 1.break:跳出循环 2.continu:跳出本次循环,继续下一次循环 3.goto:跳转到label,接着往下走 2.5 循环嵌套 总结

  • C/C++程序设计的基本概念详解

    目录 概述 main()函数 内部名称 变量和它的初始化 编译时和运行时 总结 概述 学C语言有很长一段时间了,想做做笔记,把C和C++相关的比较容易忽视的地方记下来,也希望可以给需要的同学一些帮助. 我的这些文章不想对C和C++的语法进行讲解和罗列,这些东西随便找一本书就讲的比我清楚,我只是想把一般人忽视的地方尽自己所能描述一下.权当班门弄斧,贻笑大方了. 首先我想先从C和C++的一些基本概念入手. main()函数 稍微学过C和C++的人都知道main()函数市所有C和C++程序必不可少的东

  • C++程序的五大内存分区实例详解

    目录 1.栈内存区 1.1.调用函数时通过栈来传递函数的参数值 1.2.线程占用的栈内存是有上限的 2.堆内存区 3.全局/静态内存区 4.文字常量区 5.程序代码区 C++程序在运行时所占用的内存区域,一般可分为栈内存区.堆内存区.全局/静态内存区.文字常量内存区及程序代码区5大分区: 下面使用日常开发中的编程实例,详细介绍一下这5个分区,以便大家能更深刻的理解这5大内存分区. 1.栈内存区 栈内存区是我们用的最多的分区,只要有函数的地方都会使用到这个分区.栈分区是用来存放函数参数及函数局部变

  • C++ 面向对象程序设计--内存分区详解

    目录 一.分区的意义 二.代码区 1.定义 2.特点 三.全局区 1.定义 2.特点 3.相关代码 1)全局变量 2)静态变量 四.栈区--程序运行后 1.定义 2.相关代码 五.堆区--运行后 1.定义 2.相关代码和运行结果 总结 一.分区的意义 在讲分区前,先谈谈内存分区的意义,也就是为什么程序要进行分区? 笔者认为这是为了编程的灵活性,因为将内存分区后,不同区域的内存,相关的数据就有的不同的生命周期.以笔者之前的一篇算法复杂度的blog中提到栈帧空间为例,在此就是指栈区,而栈区多指非ma

  • 老程序员教你一天时间完成C++俄罗斯方块游戏

    目录 一.主要文件 二.界面设计 三.方块设计 四.设计思路 设计思路如下: 五.总结 首先,看下效果图: 图1 游戏运行过程 下面详细讲解下制作过程. 一.主要文件 文件包含三个:tetris.cpp.tetris.h.main.cpp,各个文件的用途如下: tetris.cpp 文件:函数实现: tetris.h : 类和函数声明: main.cpp : 主函数: 二.界面设计 bool vis[100][100]; // 用于标记坐标 int Co[100][100]; // 坐标的颜色

  • VS Code如何编写C/C++程序的实现步骤

    目录 1.下载VsCode工具 2.安装扩展程序插件 3.编译软件 3.1.MinGW安装完成后,需要配置环境变量 3.2.配置环境变量 1.下载VsCode工具 下载地址https://code.visualstudio.com/ 安装完成之后 2.安装扩展程序插件 2.1.点击扩展程序按钮 2.2.输入框输入zh 将软件语言称为中文,好操作一些 2.3.One Dark Pro 更改主题 2.4.编写C/C++程序插件 2.5.Code Runner插件 就是一键运行代码的插件,就是你的代码

  • C++程序的五大内存分区实力详解

    目录 1.栈内存区 1.1.调用函数时通过栈来传递函数的参数值 1.2.线程占用的栈内存是有上限的 2.堆内存区 3.全局/静态内存区 4.文字常量区 5.程序代码区 总结 C++程序在运行时所占用的内存区域,一般可分为栈内存区.堆内存区.全局/静态内存区.文字常量内存区及程序代码区5大分区: 下面使用日常开发中的编程实例,详细介绍一下这5个分区,以便大家能更深刻的理解这5大内存分区. 1.栈内存区 栈内存区是我们用的最多的分区,只要有函数的地方都会使用到这个分区.栈分区是用来存放函数参数及函数

  • google c++程序测试框架googletest使用教程详解

    目录 什么是googletest? googletest简介 谁在使用 GoogleTest? 相关开源项目 googletest的下载与编译 cmake gui编译 在vs2019中使用googletest GTest的一些基本概念 GTest的断言 事件机制 参数化 什么是googletest? googletest简介 ​GoogleTest 是 Google 的 C++ 测试和模拟框架,可以帮助程序员测试C++程序的结果预期,GoogleTest 的代码用cmake管理,可以使用cmak

  • C++实现对象化的矩阵相乘小程序

    复习数学1的线性代数,矩阵相乘这块有点晕,想编个C++对象化的矩阵相乘小程序. 相乘部分 void sum(juzhen a, juzhen b, juzhen &c) { int s=0; for (int i = 1; i <= a.m1(); i++)//A矩阵的M for (int j = 1; j <= b.n1(); j++)//B矩阵的S { for (k0 = 1; k0 <= a.n1(); k0++)//a.n1也就是b.m1(a的n,b的n)[行向量*列向量

  • 如何将C++源程序改写为C语言

    目录 如何将C++的源程序改写为C语言 一.类的成员函数和数据成员 二.类的构造函数 三.类的析构函数 四.类的拷贝构造函数 六.重载 如何将C++的源程序改写为C语言 由于C++解释器比C语言解释器占用的存储空间要大500k左右.为了节省有限的存储空间,降低成本,同时也为了提高效率,将用C++语言写的源程序用C语言改写是很有必要的. C++与C区别最大的就是C++中的类的概念和特性,将C++改为C的问题,就转换成如何将类化去的问题. 方法有两种: 第一种是将C++中的面向对象特征去掉,先全部理

随机推荐