#include <iostream>
using namespace std;
//指针:通过指针保存一个地址
int main()
{
/************************************************************************
*1、定义指针
************************************************************************/
int a = 10;
int * p = &a;//让指针记录变量a的地址
cout << "a的地址" << &a << endl;
/************************************************************************
*2、使用指针
* 通过解引用的方式找到指针指向的内存
* 指针前加*代表解引用,找到指针指向的内存中的数据
************************************************************************/
*p = 1000;
cout << "a=" << a << endl;
cout << "*p=" << *p << endl;
/************************************************************************
*3、32位操作系统下:不管什么数据类型的指针占用4个字节;
* 64位操作系统下,占8个字节
************************************************************************/
cout << "sizeof(int *)=" << sizeof(int *) << endl;
cout << "sizeof(float *)=" << sizeof(float *) << endl;
cout << "sizeof(char *)=" << sizeof(char *) << endl;
/************************************************************************
*4、空指针:指针变量指向内存编号为0的空间
* 用 途:初始化指针变量
* 注 意:空指针指向的内存是不可以访问的 (0-255之间内存编号是系统占用不可以访问)
************************************************************************/
int * p0 = NULL;
/************************************************************************
*5、野指针:指针变量指向非法内存空间,要避免
************************************************************************/
//int * p = (int *)0x1100;
//cout << *p << endl;
/************************************************************************
*5、const修饰指针----常量指针:指针的指向可以修改,但是指针指向的值不可以改
* const修饰常量----指针常量:指针的指向不可以修改,但是指针指向的值可以改
* const既修饰常量又修饰常量:指针的指向和指针指向的值都不可以改
************************************************************************/
//const修饰指针
int a1 = 10;
int b1 = 20;
const int * p1 = &a1;
//*p = 20;(错误,指针指向的值不可以改)
p = &b1;//(正确,指针指向可以改)
//const修饰常量
int * const pp1 = &a1;
*pp1 = 20;//(正确:指向的只可以改)
//pp1 = 20;(错误:指向不可以改)
//const既修饰常量又修饰常量
const int * const ppp1 = &a1;
//*ppp1 = 20;错误
//ppp1 = 20;错误
system("pause");
return 0;
}
C++学习笔记——指针
最新推荐文章于 2024-06-12 00:03:42 发布