指针

C++内存分布,堆区和栈区,函数调用栈

对给定类型添加一层指针,移除给定类型的一层指针

std::add_pointer和std::remove_pointer

指针常量与常量指针

const int*
int* const

指针函数与函数指针

函数指针与回调函数

仿函数:std::function

函数返回局部变量,指针

函数返回局部变量,智能指针

当函数返回一个局部变量的指针问题,内存是否被释放

函数返回局部变量/局部指针

函数不能返回智能指针,因为智能指针只在函数内部有效,当智能指针超出其作用域时,该变量将被清除,从而导致指针无效。

示例代码

#include<iostream>

using namespace std;

int main()
{
    /*
    指针就是地址
    用来存储地址的变量称为指针变量
    int* p;   //*是为了说明p是一个指针

    声明变量的语法:类型 变量名   
    因此去掉变量名后就是变量的类型,即int* p; 指针p的类型是int*
    指针变量指向的类型:对应地址存储的数据类型
    int* p;  去掉变量名和*就是指向的数据类型
    */
    cout << sizeof(int*) << "	" << sizeof(char*) << "	" 
          << sizeof(int) << "	" << sizeof(char) << endl;  // 4 4 4 1

    int* p = nullptr;
    cout << p<<endl;
    int i = 0;
    p = &i;
    cout << p<<endl;
    cout << *p << endl;
    *p = 10;
    cout << *p;

    //数组
    int arr[] = { 1, 2,3,4,5 };
    cout << arr << "	" << *arr<<"	"<<;

    return 0;
    
}
原文地址:https://www.cnblogs.com/mmmmmmmmm/p/14319622.html