0
点赞
收藏
分享

微信扫一扫

C++指针理解

扬帆远航_df7c 2022-03-12 阅读 74
c++

C++指针理解

学习C++ 过程中指针一直是个难点,为了强化自己对其的理解,于此记录

指针的实质

了解指针之前,需要了解CPU如何找到需要的数据:

  1. CPU给出数据地址,32位机器会给出32位的地址,64位机器会给出64位地址。
  2. 找到此地址对应的内存块,取出相应的数据;

在C++中,如果声明一个变量,需要使用一个标识符,该标识符绑定了此变量的数据类型、对应的内存空间地址。

有了上述了解之后,可以有下面结论:

  1. 声明一个指针和声明一个变量是相同的:绑定数据类型、分配内存空间
  2. 给指针分配的是一个4或8字节的空间
  3. 指针的类型是为了确定间址时读取数据块的大小

结论 指针仍是一个变量,只不过此变量保存的是另一个变量的地址

指针的工作原理

可以看下面一段代码:

int a = 1;
int* p = &a;	//a取地址后,将地址赋给指针p
cout << *p << "   " << a << endl;

char* c = (char*) p;	//将指针p强制转换为char型的指针
cout << *c << "   " << *p << endl;

输出为:

1 1
   1

可以看到当使用指针获取一个变量时,会根据指针的类型来获取不同的空间,当为int时,间址时读取四个字节的内容,当为char 时会获取1个字节的内容。

指针的应用

  1. 应用于复杂的数据结构,例如: 使用指针来实现链表
  2. 函数参数的传递,有时使用指针传参可以减少内存的开销
  3. 动态内存分配
举报

相关推荐

理解C/C++函数指针

深入理解 C/C++ 指针

linux c指针理解

c++ 指针

c++指针

C++指针

C++:this指针

0 条评论