c++ - 为什么指针声明中需要数据类型?

标签 c++ c pointers

据我所知,C/C++中的数据类型,在声明一个变量的同时,我们需要声明它的数据类型,告诉编译器相应地保留内存中的字节数。

但是在指针的情况下,我们知道它们的大小是恒定的(例如“Turbo Compiler”中的 2 个字节),而与 它指向的变量的数据类型无关,因为指针将内存地址存储为无符号整数。

我的问题是,如果指针 总是 以字节为单位的常量大小,那么在声明它们时需要提及 数据类型 吗?我对指针的理解是不是错了?

最佳答案

取消引用指针时需要数据类型,以便知道应该读取多少数据。例如,取消引用 char 指针应该从它指向的地址读取下一个字节,而 int 指针应该读取 2 个字节。

关于c++ - 为什么指针声明中需要数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9802585/

相关文章:

c - 如何写一个简单的 "page fault generator"?

c - 传递结构指针的问题和 "conflicting types"错误

c++ - STL:: map 问题

c malloc 指向结构数组的指针

c++ - 如果参数很复杂,* 和 & 运算符的作用是什么?

C++将带参数的函数指针传递给函数

c - 解释一下输出。它正在打印每个字母表的下一个字母表

c++ - 如何在C++中获取排序后保留的列表元素的指针

c++ - 为什么这里的默认构造函数不是 constexpr?

c++ - 如何正确使用带有公共(public)成员变量的类型的 boost::optional?