C++基础知识详解:内存管理、指针操作与常量

需积分: 10 0 下载量 187 浏览量 更新于2024-09-02 收藏 12KB TXT 举报
"cpp基础知识笔记zzzz" 这篇笔记主要涵盖了C++的基础知识,旨在帮助初学者理解和掌握C++编程。以下是一些关键知识点的详细说明: 1. 头文件的使用: C++中有两种类型的头文件,即原始的C头文件(如`<cstdio>`)和C++标准库头文件(如`<iostream>`)。C++标准库通常用`<>`包裹,而C库头文件使用`#include "header.h"`。 2. 命名空间(namespace): 命名空间用于避免不同库之间的名字冲突。可以使用`using namespace name;`或`using name::identifier;`来引入命名空间,或者在访问命名空间内的成员时直接使用`name::identifier`。 3. 动态内存管理: - `new`运算符用于动态分配内存,例如`int *p = new int(10);`会分配一个整型变量并初始化为10,`p`指向这个变量。 - `delete`运算符用于释放由`new`分配的内存,如`delete p;`。对于数组,应使用`delete[] arr;`释放整个数组。 - 动态数组示例:`int *arr = new int[3];`分配一个包含三个整数的数组,`delete[] arr;`释放数组。 4. 指针操作: - 指针的声明、赋值和解引用:`int *p = &i;`声明一个指向整型变量`i`的指针,`*p`表示解引用获取`i`的值,`p++`将指针移动到下一个位置。 - NULL指针:`int *p = NULL;`定义一个空指针,通常表示没有分配内存或未初始化的指针。 5. 数组: - 定义数组:`int arr[2] = {1, 2};`定义一个包含两个元素的数组,未指定的元素默认为0。 - 指针和数组的关系:数组名可以被解释为指向数组首元素的指针,但数组不是指针。 6. const关键字: - const修饰指针:`const int *p = &i;`定义一个指向常量整数的指针,不能通过`p`改变`i`的值。 - const修饰指针所指的对象:`int *const p = &i;`定义一个常量指针,`p`的值不可变,但可以通过`p`修改`i`。 - const修饰指针和所指对象:`const int *const p = &i;`两者都不可变。 7. 引用(reference): - 引用是已初始化的别名,声明时必须赋值:`int &a = i;`使`a`成为`i`的引用,`a = 10;`等价于`i = 10;`。 - const引用:`const int &a = 10;`创建一个常量引用,防止修改数值,实际上不会创建新对象。 8. 函数重载与inline关键字: - 函数重载允许在同一作用域内有多个同名但参数列表不同的函数。 - `inline`关键字用于请求编译器在调用函数的地方展开函数体,以减少函数调用的开销。但编译器并不保证总是实现内联。 9. 结构体(struct): - 结构体是一种自定义的数据类型,可以包含多个不同类型的成员:`struct MyStruct { int x; float y; };` 以上是C++基础知识的一些关键点,涵盖了头文件、命名空间、动态内存管理、指针、数组、const关键字、引用、函数重载和结构体等内容,是C++学习者需要掌握的基本概念。