c++教程1快速入门

这篇具有很好参考价值的文章主要介绍了c++教程1快速入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

快速入门

欢迎来到令人兴奋的C++编程世界。本章将演示如何创建简单的C++程序,以及如何在程序中存储数据。

  • C++简介
  • 安装编译器
  • 编写第一个程序
  • 编译和运行程序
  • 创建变量
  • 使用变量数组
  • 使用向量数组
  • 声明常量

1.1 C++ 简介

C++是C编程语言的扩展,早在1972年由Dennis Ritchie首次在UNIX操作系统上实现。C是一种灵活的编程语言,至今仍很流行,被广泛应用于从微控制器到最先进的科学系统等各种平台。

c++教程1快速入门

C++是一种功能强大的编程语言(读作 "see plus plus"),

C++由Bjarne Stroustrup博士于1983年至1985年在新泽西州AT&T贝尔实验室工作期间开发。他在原始C语言的基础上增加了一些功能,开发出了他所称的"带类的C语言"。这些类定义了具有特定功能的编程对象,将C语言的过程性质转变为C++的面向对象编程语言。

C编程语言继承了1970年左右问世的名为"B"的早期编程语言。因为编程中的++递增运算符表示C++是C语言的扩展。

C++和C语言一样,不依赖于平台,因此可以在任何操作系统上创建程序。

1.1.1 为什么要学习C++编程?

C++语言受到许多专业程序员的青睐,因为它可以让他们创建快速、紧凑、健壮且可移植的程序。

使用现代C++集成开发环境 (IDE),如 Microsoft 的 Visual Studio Community Edition,程序员可以快速创建复杂的应用程序。但是,要想最大限度地使用这些工具,程序员必须首先学习一些有关C++语言本身的知识。

1.1.2 应该先学习C语言吗?

本书不假定读者以前掌握过任何编程语言,因此适合C++编程初学者,无论他们是否了解C语言。

如果您觉得在学习 C++ 之前先学习 C 语言编程会对您有所帮助,我们建议您在阅读本书之前先尝试一下《C 编程简易教程》中的示例。

1.1.3 C++的标准化

美国国家标准协会(ANSI)和工业标准化组织(ISO)的联合委员会定义了C++的标准版本。该版本有时被称为ANSI C++,可移植到任何平台和任何开发环境。

c++教程1快速入门

c++教程1快速入门

参考资料

  • 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
  • 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
  • python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
  • Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html
  • https://askubuntu.com/questions/1408873/ubuntu-22-04-chinese-simplified-pinyin-input-support

1.2安装编译器

C++程序最初以纯文本文件的形式创建,文件扩展名为".cpp"。这些文件可以用任何文本编辑器编写,如Windows的记事本程序或Linux上的Vi编辑器。

为了执行C++程序,必须首先将其“编译”成计算机可以理解的字节代码。 C++编译器读取程序的文本版本并将其转换为机器可读的可执行格式的第二个文件。

如果文本程序包含任何语法错误,编译器将报告这些错误,并且不会构建可执行文件。

如果您使用Windows平台并安装了C++集成开发环境 (IDE),那么您将已经拥有可用的C++编译器,因为编译器是可视化IDE的组成部分。 优秀的免费Microsoft Visual C++ Express IDE提供了编辑器窗口(可以在其中编写程序代码)以及用于编译和执行程序的按钮。 然而,在开始使用C++时,可视化IDE可能看起来很笨重,因为它们总是创建大量由高级程序使用的“项目”文件。

流行的免费GNU C++编译器可根据通用公共许可证 (GPL) 条款免费提供。 它包含在大多数Linux操作系统发行版中。 GNU C++编译器也可用于 Windows平台,并用于编译本书中的示例。

要了解系统上是否已安装 GNU C++编译器,请在命令提示符处键入c++ -v,然后按Return键。 如果可用,编译器将返回版本信息。

$ c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)

GNU(发音为“guh-new”)项目于1984年启动,旨在开发一个完全免费的类Unix操作系统。 GNU的一部分是“Minimalist GNU for Windows”(MinGW)。 MinGW包括GNU C++编译器,可在Windows系统上使用它来创建可执行的C++程序。Windows用户可以按照此处的说明下载并安装GNU C++编译器。

GNU C++ 编译器可根据通用公共许可证 (GPL) 的条款和条件免费获得,该许可证可在线找到 gnu.org/copyleft/gpl.html。可在https://sourceforge.net/projects/mingw/files/latest/download下载MinGW安装程序mingw-get-setup.exe。

启动安装程序设置并接受“安装管理器”对话框中建议的 C:\MinGW位置

c++教程1快速入门

MinGW C++编译器是一个二进制可执行文件,位于C:\MinGW\bin。 为了允许从任何系统位置访问它,现在应该将该文件夹添加到系统路径。

1.3 编写第一个程序"Hello World!"

#include <iostream>
using namespace std;

int main()
{
        cout << "Hello World!" << endl;
        return 0;
}

执行:

$ g++ hello.cpp -o hello
$ ./hello
Hello World!

编译器会在原始源代码文件旁边创建可执行文件。默认情况下,该可执行文件在Windows系统中被命名为a.exe,在Linux中被命名为a.out。建议在编译程序时使用-o选项,为可执行文件指定名字。

  • 预处理指令 - 这些指令由编译器在程序代码之前处理,所以必须总是出现在页面的开头。这里,#include指示编译器使用名为iostream的标准C++输入/输出库,在< >角括号之间指定库名。下一行是"using指令",允许使用指定命名空间的函数,而不使用其命名空间前缀。iostream库的函数属于std命名空间--所以这个using指令允许诸如std::cout和std::endl的函数被简单地写成cout和endl。
  • 注释 在//双斜线之后单行中的所有内容都会被编译器忽略。
  • Main函数 - 这是每一个C++程序的必经之路。程序可以包含许多函数,但必须始终包含main的函数,否则编译器不会编译该程序。可以选择在函数名称后面的括号中指定逗号分隔的"参数"值列表,供该函数使用。main函数必须返回int。
    -语句 - 这些是程序运行时要执行的动作。语句必须以分号结束,。这里,第一条语句调用cout库函数来输出文本和回车符endl。这些都是由<<输出流操作符指向标准输出的。请注意,C++中的文本字符串必须总是包含在双引号中。最后一条语句使用了C++的return关键字来向操作系统返回零的整数值,传统上,返回零值表示程序成功执行。

C++编译器也支持在//-之间的多行C语言风格的注释。

1.4 变量

变量是容器,其中的数据值可以存储在计算机的内存中。存储的值可以用变量的名称来引用。

可以为变量选择任何名称,只要它遵守C++的命名规则--所选的名称只能包含字母、数字和下划线字符,但不能以数字开头。另外必须避免使用C++关键字。选择有意义的名字是很好的做法,可以使代码更容易理解。

创建变量必须进行"声明"(declared),指定它可能包含的数据类型和它选择的名称。变量声明有这样的语法。数据类型 变量名称;

在C++中,名称是区分大小写的--因此名为VAR、Var和var的变量被视为三个单独的变量。传统上,C++的变量名是小写的,很少以下划线开始,因为一些C++库使用这种惯例。
同一数据类型的多个变量可以在一个声明中以逗号分隔的列表形式创建,其语法:数据类型 变量名1, 变量名2, 变量名3 。
下表列出了五种基本的C++数据类型,并附有简要说明和示例内容。

char数据类型的字符值必须总是包含在单引号中,而不是双引号。
变量声明必须出现在可执行语句之前--这样它们就可以在语句中被引用。
"初始化"是把值分配给变量时。也可以在声明中对变量进行初始化。存储在任何初始化变量中的值可以通过cout函数显示在标准输出上。

vars.cpp

#include <iostream>
using namespace std;

int main()
{
  char letter; letter = 'A';
  int number; number = 100;
  float decimal = 7.5;
  double pi = 3.14159;
  bool isTrue = false;

  cout << "char letter: " << letter << endl;
  cout << "int number: " << number << endl;
  cout << "float decimal: " << decimal << endl;
  cout << "double pi: "  << pi << endl;
  cout << "bool isTrue: " << isTrue << endl;

  return 0;
}

执行:

$ g++ vars.cpp -o vars
$ ./vars
char letter: A
int number: 100
float decimal: 7.5
double pi: 3.14159
bool isTrue: 0

布尔变量名建议以"is"开头,这样它们就能立即被识别为布尔变量。另外,对所有由多个单词组成的变量名使用"lowerCamelCase"--除了第一个单词外,其他的都以大写字母开头,如"isTrue"。

1.5变量数组

数组是可以存储多个数据项的变量。这些数据按顺序存储在数组的"元素"中,这些元素是有编号的,从0开始。因此,第一个值被存储在元素0中,第二个值被存储在元素1中,以此类推。

数组的声明方式与其他变量相同,但另外还必须在声明中指定数组的大小,在数组名称后面的方括号中。例如,声明名为"nums"的数组来存储六个整数:

int nums[6];

可以选择在声明数组时对其进行初始化,将每个元素的值以逗号分隔的列表形式用大括号括起来。例如:

int nums[6] = { 0, 1, 2, 3, 4, 5 };

单独的元素可以用数组的名称和包含元素编号的方括号来引用。这意味着nums[1]引用的是上面例子中的第二个元素--而不是第一个元素,因为元素编号从0开始。

可以为任何C++数据类型创建数组,但每个元素只能包含相同数据类型的数据。一个字符数组可以用来存储一串文本,如果最后一个元素包含特殊的 \0 null字符。比如说

char name[5] = { 'm', 'i', 'k', 'e', '\0' };

数组中的元素统称为"索引"。数组可以有一个以上的索引--代表多个维度,而不是普通数组的单维。三个索引以上的多维数组并不常见,但二维数组对于存储基于网格的信息(如坐标)很有用。比如说

int coords[2] [3] = { { 1, 2, 3 } , { 4, 5, 6 } };

arrays.cpp

#include <iostream>
using namespace std;

int main()
{
  float nums[3]; // Declared then initialized.
  nums[0] = 1.5; nums[1] = 2.75; nums[2] = 3.25;

  // Declared and initialized.
  char name[5] = { 'm', 'i', 'k', 'e', '\0' };
  int coords[2] [3] = { { 1, 2, 3 } , { 4, 5, 6 } };

  cout << "nums[0]: " << nums[0] << endl;
  cout << "nums[1]: " << nums[1] << endl;
  cout << "nums[2]: " << nums[2] << endl;
  cout << "name[0]: " << name[0] << endl;
  cout << "Text string: " << name << endl;
  cout << "coords[0][2]: " << coords[0][2] << endl;
  cout << "coords[1][2]: " << coords[1][2] << endl;

  return 0;
}

执行:

$ g++ arrays.cpp -o arrays
(base) andrew@andrew-YTF-XXX:~/code/c++easy$ ./arrays
nums[0]: 1.5
nums[1]: 2.75
nums[2]: 3.25
name[0]: m
Text string: mike
coords[0][2]: 3
coords[1][2]: 6

1.6矢量数组

矢量是普通数组的替代品,它的优点是可以根据程序需要改变其大小。创建:vector < data-type > vector-name ( size ) 或vector < data-type > vector-name ( size , initial-value ) 。

vector.cpp

#include <vector>
#include <iostream>
using namespace std ;

int main()
{
  vector <int> vec(3,100) ;

  cout << "Vector size: " << vec.size() << endl ;
  cout << "Is empty?: " << vec.empty() << endl ;
  cout << "First element: " << vec.at(0) << endl ;

  vec.pop_back() ; // Remove final element.
  cout << "Vector size: " << vec.size() << endl ;
  cout << "Final element: " << vec.back() << endl;

  vec.clear() ; // Remove all elements.
  cout << "Vector size: " << vec.size() << endl;

  vec.push_back( 200 ) ; // Add an element.
  cout << "Vector size: " << vec.size() << endl ;
  cout << "First element: " << vec.front() << endl ;

  return 0 ;
}

执行:

$ g++ vector.cpp -o vector
$ ./vector
Vector size: 3
Is empty?: 0
First element: 100
Vector size: 2
Final element: 100
Vector size: 0
Vector size: 1
First element: 200

1.7常量

在程序执行过程中不会改变的数据应该存储在常量容器中。这样可以更好地让编译器检查代码中的错误--如果程序试图改变存储在常量中的值,编译器就会报告错误,编译就会失败。

常量可以为任何数据类型创建,方法是在变量声明前加上const关键字,然后再加上空格。通常情况下,常量名称以大写字母出现,以区别于小写变量名称。与变量不同,常量必须始终在声明中被初始化。例如,数学pi值的常量声明看起来像这样。

const double PI = 3.1415926536;

enum关键字可以用简洁的方式创建整数常量序列:

enum suit { CLUBS , DIAMONDS , HEARTS , SPADES };

除非指定,第一个常量的值为0,下一个常量的值为1,以此类推。一个常量可以被赋予任何整数值,但是列表中的下一个常量总是将其递增为1。

有时将枚举常量列表定义为"自定义数据类型"更方便的--通过使用typedef关键字。这可以作为枚举声明的开始,并且可以在声明的末尾添加一个选定的类型名称。例如,这个typedef语句创建了名为"charge"的自定义数据类型。

typedef enum { NEGATIVE , POSITIVE } charge;

然后可以用通常的方法创建自定义数据类型的变量,这些变量可以合法地分配给所列的任何常量。从本质上讲,这些变量的作用就像int变量一样--因为它们存储的是被分配的常量所代表的数字整数值。例如,在上面的例子中,将一个POSITIVE常数分配给一个电荷变量,实际上分配了一个1的整数。

constant.cpp

#include <iostream>
using namespace std;

int main()
{
	const double PI = 3.1415926536;
	cout << "6\" circle circumference: " << (PI * 6) << endl;

	enum { RED=1, YELLOW, GREEN, BROWN, BLUE, PINK, BLACK };
	cout << "I shot a red worth: " << RED << endl;
	cout << "Then a blue worth: " << BLUE << endl;
	cout << "Total scored: " << (RED + BLUE) << endl;	

	typedef enum { NEGATIVE , POSITIVE } charge;
	charge neutral = NEGATIVE , live = POSITIVE;
	cout << "Neutral wire: " << neutral << endl;
	cout << "Live wire: " << live << endl; 
 
	return 0;
}

执行:文章来源地址https://www.toymoban.com/news/detail-760401.html

$ g++ constant.cpp -o constant
$ ./constant
6" circle circumference: 18.8496
I shot a red worth: 1
Then a blue worth: 5
Total scored: 6
Neutral wire: 0
Live wire: 1

小结

  • C++是一种面向对象的编程语言,是C语言的扩展。
  • GNU C++编译器可用于Windows和Linux。
  • 预处理器指令用于使程序可以使用标准C++库中的功能。
  • C++程序必须包含main方法作为程序的入口。
  • 语句定义了程序要执行的动作。
  • 建议对程序代码进行注释。
  • c++命令调用编译器,其-o选项允许命令指定生成的可执行文件的名称。
  • 变量声明指定了数据类型和名称,通过这个名称可以引用该变量内的值。
  • cout函数是C++ iostream库的一部分,它将内容写到标准输出控制台。
  • 数组是固定大小的变量,在元素中存储多个数据项,这些元素的编号从0开始。
  • 特殊的\0字符可以分配给char数组的最后一个元素,使其被视为单一的文本字符串。
  • 矢量变量在元素中存储多个数据项,并且可以动态地调整大小。
  • 存储在数组或向量元素中的值可以使用该变量的名称索引号来引用。
  • 永远不会改变的变量值应该存储在常量中。
  • 常量列表可以通过enum关键字自动编号,并通过typedef关键字给出类型名称。

到了这里,关于c++教程1快速入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MaterialDesignInXAML WPF入门教程 快速入门

    先去MaterialDesignInXAML下载下来源码,以及Releases,在DemoApp 中就可以看到实际的效果很惊艳了。 除了要有一定的C#、winform 基础外,建议先学习一下 XAML,对整个开发环境有个基础的了解,再来学习此教程。 可以去bilibili上免费学习一下。教程一共12个小时,如果不看后面的实战

    2024年02月05日
    浏览(56)
  • C语言快速入门教程1快速入门 2指令 3条件选择

    C是一种编程语言,1972年由Dennis Ritchie在美国AT T的贝尔实验室开发。C语言变得很流行,因为它很简单,很容易使用。今天经常听到的一个观点是--\\\"C语言已经被C++、Python和Java等语言所取代,所以今天何必再去学习C语言\\\"。我很不赞同这种观点。这有几个原因。这些原因如下:

    2024年02月03日
    浏览(46)
  • Git快速入门篇—— Windows版本淘宝镜像快速下载安装详细步骤及简单入门教程(附带图文教程)

    前言:我们平时在整理代码的时候,尤其是与别人一起开发项目的时候,常常涉及到代码的更新,因此代码版本问题成了一个很头痛的事。而git正是为了解决这种问题而诞生。本文将详细介绍如何通过淘宝镜像进行git的安装以及git的简单入门技巧。 下一章: git与远程仓库的交

    2024年02月03日
    浏览(89)
  • angular快速入门教程

    安装: 1.安装node.js 2.安装angular 3.创建项目 4.文件结构: 5.运行 组件: 项目根模块:app.module.ts 定义的组件都需要在app.module.ts文件里先进行import引入 然后在@NgModule({deckartions:[]})声明 定义组件模板的两个方式: 1.使用templateurl引用一个html文件 2.使用template +es6的模板字符串

    2023年04月08日
    浏览(44)
  • Eslint 快速入门教程

    eslint 是一个代码检查工具包,用来检查代码的规范。 而相比之下,prettier 是一个代码格式化工具。 解决代码风格不一致的问题 可以实现自动修复一些结构、风格问题 默认是只修复 js 语法的,其他的语言和框架需要配置 高灵活度、配置自由 对于团队来说,统一项目的代码

    2024年01月16日
    浏览(81)
  • Git 新手快速入门教程

    1. 何为版本控制 版本控制是一种记录文件变化的系统,可以跟踪文件的修改历史,并允许用户在不同版本之间进行比较、恢复或合并。它主要用于软件开发过程中管理代码的变更,但也可以应用于任何需要跟踪文件变更的场景。 版本控制系统(VCS)可以帮助团队协作开发,

    2024年04月26日
    浏览(60)
  • Lua 快速入门 · 教程笔记

    笔记的内容出自 Bilibili 上的这两个视频: Lua语言快速入门精通(第 1 ~ 6 集) 【无废话30分钟】Lua快速入门教程 - 4K超清 前者组成了笔记的主要结构,后者作为前者的补充。笔记主要用于供笔者个人或读者回顾知识点,如有纰漏,烦请指出 : ) 一般是使用 C/C++ 来实现功能,用

    2024年01月20日
    浏览(47)
  • Makefile教程1 快速入门

    Makefile用于帮助决定大型程序的哪些部分需要重新编译。在绝大多数情况下,都会编译C或C++文件。 其他语言通常有自己的工具,其用途与Make类似。当您需要根据已更改的文件运行一系列指令时,Make也可以在编译之外使用。 本教程将重点介绍C/C++编译。 下面是您可以使用Ma

    2024年02月05日
    浏览(58)
  • Docker 快速上手学习入门教程

    目录 1、docker 的基础概念 2、怎样打包和运行一个应用程序? 3、如何对 docker 中的应用程序进行修改? 4、如何对创建的镜像进行共享? 5、如何使用 volumes 名称对容器中的数据进行存储?// 数据挂载 6、另一种挂载方式:目录挂载 7、实现容器之间的相互通信 8、使用 Docker

    2024年02月09日
    浏览(41)
  • React.js快速入门教程

    React.js是一个由Facebook开发的用于构建用户界面的JavaScript库。它主要用于构建单页面应用程序(SPA),可以轻松地创建交互性强、快速响应的用户界面。 React.js的特点 1.声明式设计 −React采用声明范式,可以轻松描述应用。 2.高效 −React通过对DOM的模拟,最大限度地减少与D

    2024年01月22日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包