C++知识点总结

C++简介

C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
C++ 完全支持面向对象的程序设计,包括面向对象开发的四大特性:封装、继承、多态、抽象。

数据类型

其中常见的C++数据类型:bool,char,int,float,double,void,wchar_t。

typedef 声明

typedef 为一个已有的类型取一个新的名字。例如:

1
typedef int feet;

类型转换

C++ 中有四种类型转换:静态转换、动态转换、常量转换和重新解释转换。

  1. 静态转换
    1
    2
    int i = 10;
    float f = static_cast<float>(i); // 静态将int类型转换为float类型
  2. 动态转换
    动态转换通常用于将一个基类指针或引用转换为派生类指针或引用。动态转换在运行时进行类型检查,如果不能进行转换则返回空指针或引发异常。
    1
    2
    3
    4
    class Base {};
    class Derived : public Base {};
    Base* ptr_base = new Derived;
    Derived* ptr_derived = dynamic_cast<Derived*>(ptr_base);
  3. 常量转换
    常量转换用于将 const 类型的对象转换为非 const 类型的对象。
    1
    2
    int i = 10;
    float f = reinterpret_cast<float&>(i); // 重新解释将int类型转换为float类型
  4. 重新解释转换
    重新解释转换将一个数据类型的值重新解释为另一个数据类型的值,通常用于在不同的数据类型之间进行转换。
    1
    2
    int i = 10;
    float f = reinterpret_cast<float&>(i); // 重新解释将int类型转换为float类型

变量作用域

三种变量:局部变量、形式参数(函数的定义中声明的变量)、全局变量。
变量的作用域可以分为一下几种:局部作用域、全局作用域、块作用域、类作用域。
局部变量和全局变量的名称可以相同。
使用类名和作用域解析运算符 :: 来访问这个变量。

常量

C++中的常量包括:整数常量、浮点常量、布尔常量、字符常量、字符串常量、定义常量(#define,const)。

函数参数

如果函数要使用参数,则必须声明接受参数值的变量。这些变量称为函数的形式参数。

  1. 传值调用
    向函数传递参数的传值调用方法,把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。
  2. 指针调用
    该方法把参数的地址赋值给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。
  3. 引用调用
    该方法把参数的引用赋值给形式参数。在函数内,该引用用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

数组

  1. 指向数组的指针
    1
    2
    double runoobAarray[5] = { 1000.0, 2.0, 3.4, 17.0, 50.0 };
    double *p = runoobAarray;
  2. 传递数组给函数
    通过指定不带索引的数组名称来给函数传递一个指向数组的指针。
  3. 从函数返回数组
    1
    2
    3
    int * myFunction() {
    //. . .
    }

字符串

strcpy(s1, s2); 复制字符串 s2 到字符串 s1。
strcat(s1, s2); 连接字符串 s2 到字符串 s1 的末尾。连接字符串也可以用 + 号。
strlen(s1); 返回字符串 s1 的长度。
strcmp(s1, s2); 如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回值小于 0;如果 s1>s2 则返回值大于 0。
strchr(s1, ch); 返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
strstr(s1, s2);返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

指针

指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址。

  1. 空指针
    NULL 指针是一个定义在标准库中的值为零的常量。
非常感谢各位老板投喂!