第一章、C++入门
1、工具安装
下载dev C++
安装时选英文
后面字体设置替换为中文
2、第一个C++程序
2.1、基础程序
#include <iostream> /*C++ 标准库的头文件
using namespace std; /*让编译器去std命名空间找(cout=std::cout)
int main()
{
cout << "Hello world!" << endl;
return 0; /*返回值语句,正常运行的中断
}
2.2、main函数
main函数是程序的入口,C++的程序不管有多少行代码,都是从main函数开始执行的,main函数也被叫做:主函数。main前面的int表示main函数执行结束的时候返回一个整型类型的值,而在main函数的最后写return 0;正好前后呼应。
main函数是程序的入口
main函数有且仅有一个
一个项目中可以有多个.cpp文件,但是只能有一个main函数(因为程序的入口只能有一个)
2.3、字符串
在C语言中,使用单引号括起来一个字符,表示字符字面值,比如:’1’,’a’,使用双引号括起来多个字符表示一个字符串,比如:”abcdef”,”helloworld”,字符串中可以有一个或者多个字符,也可以没有任何字符,””表示空字符串。
上面代码中的”hellowor1d!”就是一个字符串。这类字符和字符串表示的方式在C++也完全支持的。
在C++的STL中又引入了string来表示字符串,功能更加强大,C语言不支持。
2.4、头文件
前面的代码中,写的#include ,就是在包含头文件,头文件的名字叫:iostream,使用#include <>的形式进行包含。iostream文件中的io指的是输入(进入程序的信息,简单理解就是可以给程序输入数据)和输出(从程序中输出的信息,简单理解就是程序会打印数据在屏幕上)。
在C++程序中要完成输入和输出的操作会涉及到iostream文件中的多个定义,所以就要包含这个头文件的。比如:代码中的cout是输出流对象,就是用来完成数据输出的,就需要包含头文件。
C++的编译器自带了很多头文件,每个头文件都支持一组特定的工具。
C++库函数相关头文件:https://zh.cppreference.com/w/cpp/header
在代码中如果使用了某个头文件中的定义,就得包含对应的头文件。
注:
在C语言中头文件的扩展名是.h,但是C++中的用法发生了一些变化,对老式C的头文件保留了扩展名.h,但是C++自己的文件没有扩展名了。C语言头文件:https://zh.cppreference.com/w/c/header
有些C的头文件被转换成C++头文件,这些文件名被重命名,去掉了.h扩展名,并在文件名的前面加上了前缀c(表示来自C语言);例如:C语言中有关数学的头文件名字是math.h,在C++中就是cmath。当然还得注
意,有时头文件的C语言版本和C++版本相同,而有时候,新版本做了一些修改。
头文件的命名约定:
C++旧式风格:以.h结尾。如:<iostream.h> C++程序可以使用,一些新的IDE可能不支持
C旧式风格:以.h结尾。如:<math.h> C、C++程序可以使用
C++新式风格:没有扩展名。如<iostream> C++程序可以使用,使用namespace std
转换后的C:加上前缀,没有扩展名。<cmath> C++程序可以使用,可能包含不是C的特性
2.5 cin 和 cout 初识
cout << "hello world!" << endl;这句代码在上面的程序中是最重要的代码,其他所有的代码都是为了编写这句代码。
代码中的cout是标准输出流对象(针对控制台,也就是屏幕),其实还有标准输入流对象(针对的是键盘)cin。cout是告诉程序把后面双引号中的内容打印到标准输出设备(屏幕)上,双引号中的内容可以替换的。#include
using namespace std;
int main()
{
int num;
cin >> num;//获取标准输入
cout << num << endl; //对获取到的结果标准输出
return 0;
}
cin和cout是全局的流对象,cin负责输入数据,cout负责输出数。end1;是C++中一个特殊的操作符,效果是换行和刷新缓冲区,使用时必须包含在iostream头文件。<<是流插入运算符,和cout配合使用,>>是流提取运算符,和cin配合使用,两者容易混淆,要仔细区分,不可混用。- 使用C++输入输出更方便,不需要像
printf/scanf输入输出时那样,需要手动控制格式。C++的输入输出可以自动识别变量类型。
2.6、命名空间
在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称如果都存在于全局作用域中,可能会导致很多冲突。使用名字空间的目的是对标识符的名称进行隔离,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。
std是C++标准库的名字空间名,C++将标准库的定义实现都放到这个命名空间中,当我们需要使用标准库中的内容时,就需要加上:using namespace std;当有了这句代码的时候,表示名字空间std中信息都是可见和可用的,比如:cin、cout、endl等。
代码中的std::cout的意思就是使用std名字空间中的cout。
注:
采用std::cout这种写法,如果频繁使用,在算法竞赛中比较麻烦,耽搁时间。
但是在企业中做软件开发基本上都这样写的,这样写更好的避免名字冲突的问题。
2.7、注释
C++里主要有两种形式:单行注释//和多行注释/* */
注释本来是对代码进行解释的文字,要放在代码中,但是又无需编译。注释是给程序员自己看的,编译器会忽略注释,基于注释是被编译器忽略的这个特点,在代码中有些代码不再需要的时候也会使用注释的方式屏蔽。
单行注释:
以//开头,所在行右侧内容作为注释存在
//和注释内容,建议相隔一个空格
如:using namespace std; // 选用命名空间std
多行注释:
以/*开头,*/结尾,中间全部内容作为注释
在/**/内部可以换行(也可以在每行开头加*)
如:/*
*
* 雪狼破军拉了
*
*/
Dev C++中的快捷键:ctrl+/
[212378]supplies professional anti-violence equipments and solutions for the whole world with strong and perfect production capacity. anti-violence.org