C++(二):指针

指针

    • 什么是指针
    • 定义指针
    • 数组指针
      • 在内存中的显示
    • char类型的指针
      • 在内存中的显示
    • 常量指针和指向常量的指针
    • 指针计算
      • `int`类型指针数组计算
      • `char`类型指针数组计算
    • `char str[] = "Lee"` 和 `char str[] = {'L','e','e'}` 区别
    • `char str[]` 和 `char *str` 区别

什么是指针

指针存储了一个内存地址,这个地址指向另一个数据的位置,可以是变量、数组、函数等,通过指针,可以直接访问或修改这个地址中存储的数据

定义指针

注意:定义指针时,总是要初始化它,如果不能确定指针的值,就将其初始化为nullptr

*&遵循的规则

  • 取址操作符&
    • 返回变量的内存地址
  • 解引用操作符*
    • 在声明变量时,表示指针类型的修饰符,用于表示该变量是一个指针类型
    • 在解引用操作中,表示获取指针所指向的值

C++(二):指针_第1张图片

#include 

using namespace std;

int main() {
   

    // 空指针
    int *ptr = nullptr;
    cout << ptr << endl; // 0x0
    cout << &ptr << endl; // 0x7ff7bd5d6490

    int a = 123;
    cout << &a << endl; // 0x7ff7bd5d648c
    cout << *&a << endl; // 123

    int *b = &a;
    cout << *b << endl; // 123
    cout << b << endl; // 0x7ff7bd5d648c
    cout << &b << endl; // 0x7ff7bd5d6480

    *b = 456;
    cout << a << endl; // 456
    cout << *b << endl; // 456

    a = 789;
    cout << a << endl; // 789
    cout << *b << endl; // 789


    int x = 123;
    int y = x;
    y = 456;
    cout << x << endl; // 123
    cout << y << endl; // 456

    return 0;
}

图解

C++(二):指针_第2张图片

C++(二):指针_第3张图片

#include 

using namespace std;

int main() {
   

    int a = 123;

    cout << a << endl; // 123
    cout << *&a << endl; // 123
    cout << &a << endl; // 0x7ff7b19a6478

    int *b = &a;

    cout << b << endl; // 0x7ff7b19

你可能感兴趣的:(C++,c++,开发语言)