c++ - 以下代码中 sizeof(*ptr) 和 sizeof(ptr) 有什么区别?
问题描述
我正在研究 C++ 中的指针。在下面的代码中,我有一个指向 int 的指针。我无法理解 sizeof(*ptr) 和 sizeof(ptr) 之间的区别是什么?我同意 sizeof(*ptr) 是 4 个字节,但为什么 sizeof(ptr) 是 8 个字节?
#include<iostream>
using namespace std;
int main(){
int num = 10;
int *ptr;
ptr = #
cout<<sizeof(*ptr)<<endl;
cout<<sizeof(ptr)<<endl;
return 0;
}
这是输出:
saurabh@saurabh-inspiron:~/Code/Project$ ./p
4
8
解决方案
如果ptr
是指向 a 的指针int
,那么*ptr
是它指向的int
。
您正在显示在您的系统上, anint
是4 bytes,而指针是8 bytes。
推荐阅读
- python - 即使安装了 3.9,终端仍然显示 python 版本 3.5
- javascript - 我无法从数组中获取项目供我的 Discord 机器人用来采取行动
- google-sheets - 谷歌表格用户定义函数权限错误
- flutter - 需要帮助解析 json 来颤动
- npm - 安装了哪个版本的 npm 包?
- elasticsearch - 如何在elasticsearch中将桶键排序为整数?
- visual-studio-code - 在 VS Code tasks.json 中按扩展名复制文件
- assembly - IF ELSE 语句操作数
- c# - 自定义 WindowChrome [ Wpf Core 3.1; MvvmCross 7.0.0]
- swift - 仅从 cgpoint 开始在一个方向上画线