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;
}