流浪のwolf

卷帝

导航

C++ 第三节课 指针的使用

#include <iostream>

using namespace std;
void show(){
    cout << "全局函数" << endl;
}

struct Stu {
    int a;
    void write_code(){
        cout << "成员函数" << endl;
    }
};

int main()
{
    cout << "Hellotec测试 World!" << endl;
    // 指针的使用
    // 普通指针 * p
    // 数组指针 (*parr)[3]  这是一个长度为 3 的数组指针  长得这样 [地址1,地址2,地址3]
    // 函数指针  (*pfunc)()
    void (*pfunc)() = show;  // show  or &show 都是可以的
    pfunc();
    // 成员函数指针
    // 使用指针指向一个成员函数  成员函数必须使用 &取地址符号
    // 成员函数指针的调用也是与成员函数调用是一样的
    void (Stu::*ppfunc)() = &Stu::write_code; // 此时 成员函数指针是在 结构体 Stu 里面的
    Stu stu;
    // stu.write_code();  // 成员函数调用
    (stu.*ppfunc)();  // 成员函数指针的调用

    // const 修改符 常量不可以修改 初始化的时候赋值
    const int a = 100;
    // a = 1023; C中 const 定义的变量是可以通过 指针修改的
    // const在C++中的用法
    const int *p = &a;  // 现在 const 修修饰的是指针的类型
    // *p = 10000;  // *p 是一个 read-only 只读属性 没有写的属性 所以不能直接赋值
    int c = 30;
    p = &c; // p 是地址 *p 是取地址 p 可以赋值(重新指定地址)
    cout << *p << endl;
    int * const p2 = &a;  // 此时 const 修饰的是  p (指针变量) 所以 p(地址不可以改变) *p2 是可以改变的
    return 0;
}

 

posted on 2024-02-22 21:38  流浪のwolf  阅读(4)  评论(0编辑  收藏  举报