C++是一种功能强大且广泛应用的编程语言,对于想要深入学习编程和算法的人来说,掌握C++是一个重要的里程碑。本文将带你逐步了解C++编程的基础知识,并介绍一些常见的算法和编程技巧帮你入门c++算法。
一、什么是编程
学习c++之前,你要先了解什么是编程,编程是指使用特定的编程语言,通过编写一系列指令或代码,以告诉计算机执行特定任务或解决问题的过程。编程旨在将抽象的思想和概念转化为计算机可以理解和执行的指令。编程可以用于开发各种软件应用程序、网站、游戏等。通过编程,人们可以利用计算机的强大能力来自动化任务、处理数据、实现创意和创新等。编程是计算机科学的核心领域之一,也是现代信息技术的基础。
以下是编程发展的一些重要里程碑,感兴趣的可以看一下:
-
机械计算设备:在19世纪末和20世纪初,出现了一系列机械计算设备,如差分机和分析机。这些机械设备需要通过物理设置来执行计算任务,而非编程。
-
继电器和电子管:20世纪中叶,继电器和电子管的发明使得计算机变得更加可靠和高效。这些设备能够执行逻辑和算术运算,但编程仍然是以物理方式(例如插线板、打孔纸带)进行的。
-
二进制系统和汇编语言:二进制系统的普及使得计算机能够以数字形式表示和处理信息。随着二进制系统的引入,汇编语言也出现了。汇编语言使用助记符和符号表示机器指令,从而简化了编程过程。
-
高级编程语言:20世纪50年代末和60年代初,高级编程语言开始出现。这些语言(如Fortran,COBOL和ALGOL)使得程序员能够以更接近人类语言的方式编写代码,从而提高了编程的可读性和可维护性。
-
操作系统:随着计算机的发展,操作系统成为管理计算资源和提供编程接口的关键组件。操作系统使得程序员能够使用更高层次的抽象来编写应用程序,而无需直接处理底层硬件。
-
面向对象编程:20世纪70年代和80年代,面向对象编程(OOP)开始流行。OOP的思想是将数据和操作封装在对象中,提供了更灵活和模块化的编程方法。
-
互联网和Web编程:随着互联网的普及,Web编程成为一个重要领域。HTML,CSS和JavaScript等技术使得开发者能够创建动态和交互式的网页应用程序。
-
开源和自由软件运动:开源和自由软件运动的兴起为编程社区带来了一种新的合作和共享的文化。开源软件允许开发者自由地访问、使用和修改代码,促进了创新和技术进步。
-
人工智能和机器学习:近年来,人工智能和机器学习技术取得了巨大的突破,为编程领域带来了新的挑战和机遇。这些技术使得计算机能够从数据中学习和自主地进行决策,推动了智能系统的发展。
机器语言是计算机可以直接理解和执行的二进制指令代码。所有编程语言中,只有机器语言是可以被计算机(电脑)直接识别的,它是由一系列0和1组成的二进制数字序列,因为计算机是电子设备,在它的世界中只有负电荷(0)和正电荷(1),用于表示计算机硬件执行的操作和指令。每个计算机的机器语言都是特定的,取决于其所使用的处理器架构和指令集。,机器语言非常底层且难以阅读和编写,但它是所有其他高级编程语言的基础。高级语言的编译器或解释器将高级代码翻译成机器语言指令,使计算机能够执行相应的任务。
二、安装编译环境
c++就属于高级语言的一种。上面说到,机器语言是所有其他高级编程语言的基础。高级语言需要编译器或解释器将高级代码翻译成机器语言指令,才能让计算机能够执行相应的任务。所以你想学习、使用c++,就必须安装编译器或解释器,对于新手入门学习C++的编译器,以下是一些适合的选择:
1.Code::Blocks:Code::Blocks是一个免费、开源且跨平台的集成开发环境(IDE),它使用MinGW作为默认的C++编译器。它提供了简单易用的界面和基本的调试功能,非常适合初学者。
2.Dev-C++:Dev-C++也是一个免费的、开源的集成开发环境,使用MinGW作为后端编译器。它提供了简洁的界面和快速的编译速度,适合初学者进行简单的C++编程。
3.Visual Studio Community Edition:Visual Studio是一个强大且功能齐全的IDE,Community Edition版本是免费的,适用于个人和小型团队。它提供了丰富的功能,包括高级的调试工具和图形化界面设计等,适合更复杂的C++项目。
4.Xcode:如果你是在Mac操作系统下学习C++,Xcode是一个很好的选择。它是苹果公司提供的免费开发工具,内置了Clang编译器和调试器,适用于开发iOS和Mac应用程序。
我个人认为,当初学者入门学习C++编程时,Dev-C++是一个不错的选择,作为一个免费的、开源的集成开发环境,Dev-C++提供了简洁、直观的界面,使得编程变得更加容易上手。Dev-C++采用了MinGW作为默认的C++编译器,它具有快速的编译速度和良好的兼容性。可以在https://www.123pan.com/s/bZ15Vv-bk9sd.html下载,打开压缩包后,进入Dev-Cpp文件夹,打开devcpp.exe就可以打开编译器了,当然,也可以自己下载。打开编译器后你就会看到这样一个界面(你们的界面颜色可能不一样):
你想敲代码就要先新建一个文件,只需按照以下步骤点击即可:
然后进入到这界面就可以敲代码了:
三、输出
输入(Input)通常指的是程序接收到的外部数据。这些数据可以来自用户、文件、传感器等。输入可以是各种形式的信息,例如文本、数字、图像等。程序使用输入数据来执行相应的操作或进行特定的计算。
输出(Output)则是程序向外部返回的结果或信息。输出可以是文本、图像、声音、文件等。它是程序处理输入数据后得到的产物,用于向用户展示结果或将结果保存到文件或其他媒体中。以简单的例子来说明,假设我们编写了一个简单的计算器程序。用户通过键盘输入两个数字和一个运算符,程序会将输入的数字进行相应的运算,并将结果输出到屏幕上。在这个例子中,用户输入的数字和运算符就是输入,而程序经过计算后得到的结果就是输出。
c++中你可以使用cout来输出,cout是C++的标准输出流,可以将文本输出到控制台。你可以使用<<
运算符将文本、变量等输出到控制台。例如:
#include <bits/stdc++.h>
using namespace std;
int main() {
cout << "Hello, World!" << endl;//endl是换行
return 0;
}
想要运行代码就要按这个按钮:
运行后会有这样的效果:
现在你可能会问:代码里除了“cout << "Hello, World!" << endl;”之外的代码是什么鬼?!
#include <bits/stdc++.h>加“万能头文件”,C++中的头文件(header file)用于引入外部库或者其他源代码文件中定义的函数、类、变量等。头文件以.h
或者.hpp
为扩展名,通常包含函数的声明、宏定义、结构体和类的定义等,简单来说就是将一个库放到程序里,而这个库里面就有各种各样的代码给你用,不同的库有不同功能的代码,而万能头文件包含了绝大部分常用代码,所以叫万能头文件,using namespace std;是一个命名空间,命名空间的用处是防止函数重名,int main()是C++程序中的主函数,它是程序的入口点(entry point)。当程序运行时,操作系统会首先执行main函数中的代码。return 0;初学者只需要知道它的功能是指关闭函数就可以了,而;是c++中每一段程序后面必须要加的分隔符。双引号"
在C++中是用来表示字符串字面值(string literal)的界定符。在上述代码中,双引号括起来的部分"Hello, World!"就是一个字符串字面值,表示一个包含字符序列"Hello, World!"的字符串,简单来说就是c++中的的字符必须要用双引号括起来,如果只是英文字符可以用单引号。
四、变量
C++中的变量是用来存储数据的容器。它们可以是各种不同的类型,例如整数、浮点数(小数)、字符、字符串等。在C++中,要声明(创造)一个变量,需要指定变量的类型和名称。例如,如果我们要声明一个整数变量,可以使用以下语法:
int n;//int指整数,n指变量名
这将声明一个名为n的整数变量。要赋值给这个变量,可以使用以下语法:
n = 10;
想要在声明变量时同时赋值也可以这么做:
int n = 10;
以下是不同类型对应的代码:
整型变量(int
):用于存储整数值。可以存储范围为-2147483648到2147483647之间的整数。
浮点型变量(float
、double
):用于存储实数值。float
类型可以存储6~7位有效数字,double
类型可以存储15~16位有效数字。
字符型变量(char
):用于存储单个字符。
布尔型变量(bool
):用于存储布尔值(真或假 1 或 0)。
短整型变量(short):用于存储较小的整数值。可以存储范围为-32768到32767之间的整数。
长整型变量(long):用于存储较大的整数值。可以存储范围为-2147483648到2147483647之间的整数。
无符号整型变量(unsigned int、unsigned short、unsigned long):用于存储正整数值,不包括负数。可以存储的范围是0到4294967295之间的整数。
长双精度浮点型变量(long double):比double类型更高的精度,可以存储19~20位有效数字。
宽字符型变量(wchar_t):用于存储一个宽字符,它通常占用两个字节或四个字节。
auto变量:根据初始值自动推断变量类型。
register变量:被声明为register的变量存储在CPU寄存器中,以加快程序的执行速度。
extern变量:在函数外部定义的全局变量,可以在其他文件中使用。
static变量:用于在函数内部和全局作用域中创建静态变量,它们只初始化一次,并在程序的整个生命周期内存在。
const变量:用于表示值不可修改的常量,后面要加变量类型(int、string......)。
五、输入
c++要输入的话可以用cin,例如:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
cout << n << endl;
return 0;
}
运行之后就是这样一个效果:
六、for循环
当初学者学习C++编程时,for循环是一种非常重要的控制结构。它通常用于重复执行一段代码,让程序可以按照指定的条件进行迭代。
for循环的基本语法如下:
for (初始化表达式; 条件表达式; 更新表达式) { // 循环体代码 }
其中:
-
初始化表达式:在循环开始前执行,并且只执行一次。通常用于初始化计数器或设置变量的初始值。
-
条件表达式:在每次循环迭代之前进行检查。如果条件为真(非零),则继续执行循环体;如果条件为假(零),则跳出循环。
-
更新表达式:在每次循环迭代之后执行,通常用于更新计数器或改变变量的值。
下面是一个示例,使用for循环打印数字1到10:
#include <iostream>
using namespace std;
int main () {
for (int i = 1; i <= 10; i++)
{
cout << i << " ";
}
return 0;
}
在这个示例中,我们首先使用int i = 1
初始化了计数器i,然后设置了条件表达式i <= 10
,表示只要i小于等于10,就会继续执行循环体。在每次循环迭代结束后,计数器i会通过i++
进行自增操作。循环体中的代码cout << i << " ";
用于输出当前的计数器值i,并在后面加上一个空格。这样,程序会输出数字1到10,每个数字之间用空格分隔开。for循环可以根据需求灵活地修改初始化、条件和更新表达式。你可以根据具体的编程任务来调整这些部分。