C++的学习参照黑马机器人教程
一、C++ 介绍 - 黑马机器人—C++https://robot.czxy.com/docs/cpp/day01/01_intro/
1.C++介绍
c++ 属于编译语言,是一种需要编译后运行语言,编译后通过链接,整合其他依赖库,然后生成机器码(可执行文件),以后再运行,无需编译。
2.环境准备
安装编译环境,GCC系列,GNU编译器套装(英语:GNU Compiler Collection,缩写为GCC),指一套编程语言编译器,常被认为是跨平台编译器的事实标准。
3.入门示例
#include<iostream>
int main (){
std::cout << "hello world !" << std::endl;
return 0 ;
}
#include
: 引入输入输出库
int main(){}
: 主函数入口
std::
.... 输出打印
return 0
: 函数返回值,一般0 表示正常执行返回。
其中std是一个命名空间(namespace),‘::’是作用域运算符,cout是std空间中的一个函数名。使用cout时,必须有使用std命名空间的说明,有两种说明方式。
一种是如上的表达方式;另一种是在主函数前说明一下
using namespace std;
cout << "Input two numbers:";
3.1 main函数解释
main
函数是C++程序的__入口函数__,C++标准要求main
函数的返回值类型为int
。 0 表示正常退出。
int main() {
return 0;
}
(1)返回值释疑
当
main
函数的返回值为int
,而函数内并没有出现return语句时,同样可以通过编译并正常运行。这是因为编译器在
main
函数的末尾__自动添加了return 0;
的语句__。所以,
main
函数是C++程序经过__特殊处理的函数__。其他的返回值类型不是
void
的函数,如果没有使用return语句,编译器将报错。
int main(){
}
(2)参数释疑
main函数有两种写法: 一种是不含参数,一种是携带参数。当考虑程序在运行的时候,立即获取到外部传递进来的数据,那么可以使用含有参数的main函数。 参数
argc
表示传递进来的参数总数,args
表示传递进来的参数。char **
是二级指针的写法,当然此时我们是不明白二级指针的意思。那么把它看成是二维数组就好了。 值得注意的是: main函数的第一个参数会隐式传递进来当前程序的全路径地址。
int main(int argc , char ** args) {
std::cout << "参数个数:"<< argc << std::endl;
std::cout << "第一个参数:"<< args[0] << std::endl;
std::cout << "第一个参数:"<< args[1] << std::endl;
return 0;
}
3.2 注释
c++采用
//
和/* */
实现单行和多行注释。
#include <iostream>
int main (){
// 我是c++的单行注释
std::cout << "hello world" << std::endl;
/*
我是c++的多行注释
我可以写多行
*/
std::cout << "hello world" << std::endl;
return 0 ;
}
4.数据类型和变量
4.1 数据类型
除下表给出的数据类型之外,其实还有 short
| long
| long long
等 。 关于数据类型占用的字节长度其实不用刻意的去背,c++提供sizeof()函数
来获取某种数据类型占用的空间大小。
整数类型 | int |
单精度浮点数 | float |
双精度浮点数 | double |
字符 | char |
字符串 | string |
布尔 | bool |
4.2 变量
(1)声明和初始化
c++ 是强类型语言,任何变量在使用前必须先声明,并且在声明的时候必须要指定该变量的数据类型,即该变量未来能够存储的数据类型。
int main(){
//先声明
int age ;
double price;
//后初始化
age = 10 ;
price = 20.3;
//声明及初始化
int age = 20 ;
return 0 ;
}
变量声明以及初始化常用手法
int age ; //未初始化
int age = 21 ; // C 方式初始化
int age (21); //构造方法初始化
int age {21} ; //c++ 11标准开始的方式
(2)变量命名规则
- 可以包含字母 、数字 和下划线
- 必须以字母或者下划线开始
注意:在C++中,大写字母和小写字母被认为是两个不同的字符。因此,sum和SUM是两个不同的变量名。一般地,变量名用小写字母表示,与人们日常习惯一致,以增加可读性。应注意变量名不能与C++的关键字、系统函数名和类名相同
4.3 常量
常量其实和变量没有多大区别, 有名字, 占据存储空间,可以是任何的基本类型,但只有一点不同,常量的值不允许变更。C++中的常量的声明需要使用
const
关键字,而python中的常量默认约定是全大写表示。
int main(){
const double pi {3.1415926};
const int months_in_year{12};
pi = 2.5 ; //将会出现编译错误
return 0 ;
}
4.4 常量长度
sizeof
除了可以作用于类型身上之外,也可以作用于变量身上。
#include<iostream>
int main(){
double a = 20.0;
sizeof(a); //8
sizeof(int); //4
return 0 ;
}
5.输入输出
任何编程语言都要输入和输出,python的输入输出是
input
和scanf
和printf
, 而C++的相对要复杂些,它使用std::cin
和std::cout
来操作输入输出 。 C++的输入输出,需要导入 iostream 库 。
5.1 输出
一般在输出的后面跟上
std::endl
来表示输出结束,它除了含有换行的功能之外,还具备了刷新数据打印缓冲区的功能。
#include <iostream>
int main (){
//由于没有换行,两个单词会出于同一行。
std::cout << "Hello";
std::cout << " world";
//兼备换行的输出
std::cout << "Hello" << std::endl;
std::cout << " world" << std::endl;
//可以连续输出打印,这其实是一种叫做:链式调用的手法
std::cout << "Hello " << " World" << " , I love C++!"<< std::endl;
return 0 ;
}
5.2 输入
输入旨在获取键盘的数据输入。 不过获取输入前的提示语句得使用
std:: cout
来输出提示。
#include <iostream>
int main (){
std::cout << "请输入您的年龄:"<<std::endl;
int age ;
std::cin >> age;
std::cout << "您的年龄是:" << age <<std::endl;
return 0 ;
}
6.条件与循环
6.1 条件判断
(1)if语句
#include <iostream>
int main (){
std::cout << "请输入此次考试的成绩:" << std::endl;
int score ;
std::cin >> score;
if( score > 90){
std::cout << "可以休息一天" << std::endl;
}else if(score > 80){
std::cout << "可以休息半天" << std::endl;
}else{
std::cout << "乖乖去写作业" << std::endl;
}
return 0 ;
}
标准格式
if(判断条件){
执行语句
}else if (判断条件){
执行语句
}else (判断条件){
执行语句
}