0
点赞
收藏
分享

微信扫一扫

C++笔记:指针

爪哇驿站 2022-02-19 阅读 74

1. 定义

C/C++提供了让我们直接操作内存的机会,这种机会就是利用指针,指针要有两个要素:

  1. 要操作的内存地址;
  2. 要操作的内存大小。

2. 指针的语法

2.1. 声明方式一

数据类型* 变量名称;

int* a{};

2.2. 声明方式二

数据类型 *变量名称;

int *b{};

2.3. 注意点

int* a,b; // a是指针,b是int类型的数据
//希望a,b都是指针,可如下声明
int *a, *b;

3. 运算符

3.1. 取址运算符&

既然指针是用来操作内存的,那如何获取一个变量的内存地址呢?
利用取址运算符&

int a = 100;
int *p = &a;

此时,p就是a的内存地址。

3.2. 间接运算符*

如何读写一个指针指向的内存空间 ?
利用间接运算符*

int a = 5000;
int *p = &a;
*p = 500;

*p = 500;就代表在a的内存地址里写入500。

3.3. 综合

int a = 5000;
int *p = &a;
*p = 100;
std::cout << "内存地址 p= " << p <<"\n *p = "<< *p << "\n a= " << a;

//    p = 006FF81C
//   *p = 100;
//    a = 100;


4. 指针数组

指针的本质其实就是一种特殊的变量类型,因此指针也可以通过数组的方式声明。

int* pArray[10];

5. 指针的大小

int a{100};
int *p {&a}; 
std::cout << sizeof(p)<<std::endl; //4 
char *cp{};
std::cout << sizeof(cp)<<std::endl; //4
  1. 在32位操作系统下,指针的寻址最大范围是2^32, 即4GB ,即0xFF FF FF FF;0xFF为1个字节,所以,32位操作系统的指针,4字节即可满足寻址要求。
  2. 同上,64位操作系统下,指针的大小为8字节
举报

相关推荐

0 条评论