做土豆的视频在线观看网站,word发布wordpress,网站建设推广内容,网站广告赚钱吗开门见山#xff0c;如果把计算机的内存空间比作是一排房子#xff0c;那指针就是房门号。指针实际上就是一个用来存储内存地址的整数#xff0c;与类型没有关系#xff0c;我可以定义一个void类型的指针#xff1a;
#include iostreamint main()
{int var 8;v…开门见山如果把计算机的内存空间比作是一排房子那指针就是房门号。指针实际上就是一个用来存储内存地址的整数与类型没有关系我可以定义一个void类型的指针
#include iostreamint main()
{int var 8;void* ptr var;std::cin.get(); //设置断点
}设置断点后Debug可以看到 到Memory中输入ptr的值可以看到 在4个字节的内存空间中存放了var的值8。
既然指针是一个数那它应该也有地址呀指针的指针当然有
#include iostreamint main()
{int var 8;void* ptr var;void* ptr1 ptr;std::cin.get();
}我们发现红线的4个字节存放了指针的值而它刚好就在存放var值8蓝线的8个字节前。
如果我们想通过指针ptr去给var赋值那类型就不能为void否则会报错
#include iostreamint main()
{int var 8;int* ptr var;*ptr 10;std::cin.get();
}指针只说明了内存地址并不包含内存块大小的信息如果我们想使用指定大小的内存可以这样
#include iostreamint main()
{char* buffer new char[8];memset(buffer, 1, 8);std::cin.get();
}输入buffer的值可以看到8个字节的内存空间且被置为1