C++学习之路---新手基础篇

参考:https://www.cnblogs.com/coding365/p/12872284.html#IDE_29

一、概述

1、C++是一门古老的语言,C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

2、集成开发工具:Visual Studio (Visual C++)、C++ Builder、kDevelop、Anjuta、Code::Blocks(开放源码的全功能的跨平台C/C++集成开发环境)、 Eclipse CDT;

3、编译器:Dev C++、Ultimate++、Digital Mars、C-Free、MinGW、Tiny C Compiler。我是用的是Code::Blocks和MinGW。

二、构建标准

以下程序是一个标准的c++程序,什么都不干。

#include <iostream>   //预处理语句,在#include后面可以调用c++标准库,基础的c++程序定义一个iostream是标准输入输出流

using namespace std;  //调用命名空间std内定义的所有标识符

int main()        //定义一个函数,int是返回值类型,main() 是函数名,main()主函数,不可以改名!{}一对大括号括起来的地方就是代码段
{
return 0;        //程序结束的地方,叫返回值,返回值的默认值是0,不可以改!
}

三、第一个程序:“Hello World!”

代码段:cout<<"Hello World!"<<endl;  //cout是输出到控制台(终端),<<是输出流符号,""这是代表字符串,输出一个hello world的字符串;
                      //最后endl是回车的意思,输出换行,最后分号;每行都要有

四、C++基础语法

1、C++自身的输入输出风格:

  int aNum1;
  int aNum2;
  cin>>aNum1; //cin是输入标识符,>>是输入流符号
  cin>>aNum2;
  cout<<"aNum1+aNum2="<<aNum1+aNum2<<endl;

2、c++中也支持C语言的输入与输出:

  int aNum;
  scanf("%d", &aNum);  //scanf是输入,printf是输出,“”双引号内是确定输出格式的语句,","后面就是输出中切入的变量
  printf("%d\n", aNum);  //“d%”是整型,\n是换行,b = &a;//给指针赋值,使指针指向a的地址

3、变量

(1)全局变量:整个文件可用,通常用来声明常量,定义位置:命名空间(using namespace std;)下面:

#include <iostream>
using namespace std;
int n = 10;  //定义全局变量
void out(){
    cout << n << endl; //自定义函数,下面讲
    //函数中可用
}
int main(){
    cout << n << endl;//every where可用
    return 0;
}

(2)局部变量

#include <iostream>
using namespace std;
void func(){
    cout << n << endl;//报错,找不到n
}
int main(){
    int n = 10;
    cout << n << endl;
}

3、常量:不能改变的量,用保留字const定义,实例:

#include <iostream>
using namespace std;
const int an = 100;
int main(){
    //常量可以定义在任何地方
    cout << an << endl;//输出100
    const long long int aln = 200;
    cout << aln << endl;//输出200
    aln = 100;//报错,不可篡改常量
    return 0;
}

4、注释:单行注释用//双斜杠表示,多行注释用一对单斜杠+星号/**/实现

5、C++的所有关键字、保留字不可作为变量名、函数名等等,它们是固定的。

6、C++数据类型

(1)整型:存储整数的类型,用整形声明的变量可以存储整数

名称所占字节数取值范围
short[int] 2 -32768~32767
unsigned short[int] 2 0~65535
int 4 -2147483648~2147483647
unsigned int 4 0~4294967295
long long 8 -263~263-1
unsigned long long 8 0~264-1
int main(){
    short aNum_short;
    int aNum_int;
    long long aNum_long;
    cin >> aNum_short;
    cin >> aNum_int;
    cin >> aNum_long;
    cout << aNum_short << " " << aNum_int << " " << aNum_long << endl;
    return 0;
}

(2)浮点型:存储带小数点(小数)的类型,用浮点型声明的变量可以存储整数,浮点型有几个定义方法:

  float单精度浮点数,double双精度浮点数,long double高精度浮点数。

精度名称所占字节数取值范围
单精度浮点数 float 4 -3.4E+38~3.4E+38(7位有效数字)3.4E+38 3.4E+38(7)
双精度浮点数 double 8 -1.79E+308~1.79E308(15位有效数字)1.79E+308 1.79E308(15)
高精度浮点数 long double 12 3.4E-4932~1.1E+4932(19位有效数字)3.4E4932 1.1E+4932(19)
int main(){
    float f_float;
    double f_double;
    long double f_longD;
    cin >> f_float >> f_double >> f_longD;
    cout << f_float << " " <<  f_double << " " << f_longD << endl;
    return 0;
}

(3)布尔型

bool flag = true;//赋值初始值
cout << int(flag) << endl; //强制类型转换变成int,输出1
flag = false;
cout << int(flag) << endl; //输出0

(4)字符类型:只能存储一个字符,用单引号 ‘ ’ 括起来,c++中的字符类型只支持ASCLL编码。

char ch = 'A';
cout << ch << endl;//输出A、
cout << int(ch) << endl;//输出A的ASCLL码,65

7、C++的运算符:告诉编译器执行特定的数学或逻辑操作的符号。

(1)算术运算符

假设变量 A 的值为 10,变量 B 的值为 20,则:

运算符描述实例
+ 把两个操作数相加 A + B 将得到 30
- 从第一个操作数中减去第二个操作数 A - B 将得到 -10
* 把两个操作数相乘 A * B 将得到 200
/ 分子除以分母 B / A 将得到 2
% 取模运算符,整除后的余数 B % A 将得到 0
++ 自增运算符,整数值增加 1 A++ 将得到 11
-- 自减运算符,整数值减少 1 A-- 将得到 9

(2)关系运算符

运算符描述实例
== 检查两个操作数的值是否相等,如果相等则条件为真。 (A == B) 不为真。
!= 检查两个操作数的值是否相等,如果不相等则条件为真。 (A != B) 为真。
> 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 (A > B) 不为真。
< 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 (A < B) 为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 (A >= B) 不为真。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 (A <= B) 为真。

(3)逻辑运算符

假设变量 A 的值为 1,变量 B 的值为 0,则:

运算符描述实例
&& 称为逻辑与运算符。如果两个操作数都非零,则条件为真。 (A && B) 为假。
|| 称为逻辑或运算符。如果两个操作数中有任意一个非零,则条件为真。 (A || B) 为真。
! 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。 !(A && B) 为真。

注:关系运算符和逻辑运算符常通常用于判断语句

五、C++语法提高

1、数组

C++ 支持数组数据结构,它可以存储一个固定大小相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

(1)声明数组:需要指定元素的类型元素的数量,如下所示:

double balance[10];

(2)初始化数组:可以逐个初始化数组,也可以使用一个初始化语句,如下所示:

double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};

(3)访问数组元素:可以通过数组名称加索引进行访问。

double salary = balance[9];

2、字符串

字符串用string定义,还要预处理一个库#include<string>,字符串可以用[]访问下标

string str="abcddd";

cout<<str[2]<<endl;   //输出c

3、控制语句

(1)循环:for和while

(2)判断:if

  for(int i = 0 ; i < n ; i ++){
    //寻找[i,n)区间内的最小值
    int miniIndex = i ; //存放最小值的索引
    for(int j = i + 1 ; j < n ; j ++){
      if(arr[j] < arr[miniIndex]){
        miniIndex = j;
        }
    }
    swap(arr[i] , arr[miniIndex]); //交换两个元素的位置,swap()是C++最新标准库中的内置函数
  }

4、函数:一组一起执行一个任务的语句。

每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数。

(1)函数声明:告诉编译器函数的名称、返回类型和参数。

    函数定义:提供了函数的实际主体。

(2)函数由一个函数头和一个函数主体组成

  return_type function_name( parameter list ) { body of the function }

  • 返回类型:return_type 是函数返回的值的数据类型有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void
  • 函数名称:函数的实际名称。函数名和参数列表一起构成了函数签名。
  • 参数:占位符。当函数被调用时,向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,函数可能不包含参数。
  • 函数主体:包含一组定义函数执行任务的语句。

(3)内置函数:例如,函数 strcat() 用来连接两个字符串,函数 memcpy() 用来复制内存到另一个位置。

 

posted @ 2020-07-07 11:10  竹叶汉升  阅读(184)  评论(0)    收藏  举报