C/C++入门基础知识
开发工具
在正式编写C++程序之前,我们先来了解一下几个常见的C++的开发软件。
- Visual Studio
(本篇文章使用的软件是Visual Studio 2019,最新版visual studio应该是2022版)Microsoft Visual Studio 2019 是微软在2018年6月6号推出的最新的一款VS编程开发软件,这款软件备受编程人员的广泛追捧,它拥有强大的源代码编辑器功能,以及庞大扩展插件库,可以帮助运行以及编辑 C/C++,PHP 等各种编程语言 - Visual Studio Code
Visual Studio Code是一个由微软开发,同时支持Windows 、 Linux和macOS等操作系统且开放源代码的代码编辑器,它支持测试,并内置了Git。 - DEV-C++
Dev-C++是一套用于开发C/C++的自由的集成开发环境,并以GPL作为散布许可。使用MinGW及GDB作为编译系统与调试系统。Dev-C++的IDE是利用Delphi开发的。 - Sublime Text 3
Sublime Text是一套跨平台的文本编辑器,支持基于Python的插件。Sublime Text是专有软件,可透过包扩展。支持 Windows 及 Mac 等多平台。类似于 Eclipse,IDEA,有着丰富的插件系统,完全可以满足各种编辑、开发需求。 - Notepad++
Notepad++是自由软件的纯文本编辑器,由侯今吾基于同是开放源代码的Scintilla文本编辑组件并独力研发,两度获得SourceForge社群选择奖——最佳开发工具。
本篇文章使用的软件是Visual Studio 2019,最新版visual studio应该是2022版
本篇不再介绍如何创建新项目,如有需要请参考之前的文章:使用VS2022创建新项目
代码格式
代码格式对大部分刚入门编程的新手来说都是很令人头痛的,我自己以及我身边的很多同学都曾被代码格式搞得痛不欲生
相对于python来说,C++最大的好处之一就是对代码的缩进是很友好。
#include<iostream>
using namespace std;
int main()
{
//在这里编写代码
return 0;
}
输入与输出
-
输入和输出并不是C++语言中的正式组成成分。C和C++本身都没有为输入和输出提供专门的语句结构。输入输出不是由C++本身定义的,而是在编译系统提供的I/O库中定义的。
-
C++的输出和输入是用“流”(stream)的方式实现的。有关流对象cin、cout和流运算符的定义等信息是存放在C++的输入输出流库中的,因此如果在程序中使用cin、cout和流运算符,就必须使用预处理命令把头文件stream包含到本文件中: #include
-
尽管cin和cout不是C++本身提供的语句,但是在不致混淆的情况下,为了叙述方便,常常把由cin和流提取运算符“>>”实现输入的语句称为输入语句或cin语句,把由cout和流插入运算符“<<”实现输出的语句称为输出语句或cout语句。根据C++的语法,凡是能实现某种操作而且最后以分号结束的都是语句。
-
【cout<< 】输出
cout<<表达式1<<表达式2<<……<<表达式n;
一个cout语句可以分写成若干行。如:
cout<<"This is a simple C++ program."<<endl;
可以写成:
cout<<"This is " //注意行末尾无分号
<<"a C++ "
<<"program."
<<endl; //语句最后有分号
也可写成多个cout语句,即:
cout<<"This is "; //语句末尾有分号
cout <<"a C++ ";
cout <<"program.";
cout<<endl;
以上3种情况的输出均为;
This is a simple C++ program.
与cout类似,一个cin语句可以分写成若干行。
- 【cin>>】 获取用户输入:
cin>>变量1>>变量2>>……>>变量n;
如:
cin>>a>>b>>c>>d;
可以写成
cin>>a //注意行末尾无分号
>>b //这样写可能看起来清晰些
>>c
>>d;
也可以写成
cin>>a;
cin>>b;
cin>>c;
cin>>d;
以上3种情况均可以从键盘输入: 1 2 3 4
注释
C++ 支持单行注释和多行注释。注释中的所有字符会被 C++ 编译器忽略。
- 单行注释:【//】
- 多行注释:【/**/】
- 特殊注释:特殊注释是一些通用的,能够被编译器识别的特殊字符。比如说,我们常用的特殊注释有“TODO”、“FIXME”、“XXX”。
- TODO:“TODO: + 说明”可以用于提醒阅读者(或自己)此处有一些功能代码待实现,具体功能在说明中简要介绍。
- FIXME:“FIXME: + 说明”可以用于说明标识处的代码需要修正,比如我们已经对某个功能进行了实现,但是有一些bug需要修复,那么可以用这个符号进行标明。
- XXX:“XXX: + 说明”可以用于表示此处代码虽然实现了某个功能,但是实现方法有待商榷,需要改进,比如计算复杂度太高,需要优化等。
变量
变量,即没有固定的值,可以变化的数,它有名字,有类型,有内存等
- 变量名:变量名有用户自定义的,也有程序事先给定的,是用来代表存储在内存中的数据。
- 变量命名:由字母、数字、下划线组成。变量名必须以字母或下划线开头,不能以数字开头。
- 变量的命名规则:
- 驼峰命名法 【myName】 除第一个单词之外,其他单词首字母大写
- 下划线命名法 【my_name 】 名称中的每一个逻辑断点都用一个下划线来标记,C语言中比较常用
- 匈牙利命名法 【m_pMyName】 变量名=属性+类型+对象描述
- 变量类型:
- 数字变量的类型有:int short float double
- 字符型有:string char
- 变量定义格式:
//变量类型 变量名;
int name;
//变量类型 变量名 = 变量值;
int name=10;
string name='name';
char name='a';
double name=3.14;
float name=4.55;
...
- 变量初始化:
//变量类型 变量名 = 变量值;
int name=10;
string name='name';
char name='a';
double name=3.14;
float name=4.55;
...
- 变量的作用域:
- 局部变量:局部变量是用户定义在局部函数内,只存在于局部函数的变量。这种变量只能在局部函数内使用,在局部函数外访问不到,无法使用。
- 全局变量:在程序开头定义的变量/定义在main()函数开头的变量。不属于任何一个局部函数,可以在函数声明位置到程序结尾的范围内调用