c++ - 为什么有不同类型的指针?

标签 c++ c pointers

首先,如果这个问题很愚蠢,我很抱歉 我是 C/C++ 初学者

我的问题是:

为什么当我想指向char时像( char x = 'A' )这样的变量我应该创建一个 char 数据类型的指针?喜欢这个(char * pnt = &x)?我认为地址应该始终是内存中任何位置的整数,因此我的示例中的变量 x 在将(65)转换为某个地址中的二进制系统后以这种格式(01000001)存储在 RAM 中..所以有一个 char 的地址输入??

我不明白这个概念,有什么解释吗?

最佳答案

这是因为 C/C++ 中的强类型。这是其中一种范式(例如 python 使用不同的范式),但在 C++ 中是唯一可能的。实际上,您可以利用有关指针类型的知识并在类型之间转换指针。使用 static_cast、dynamic_cast 等来做到这一点。另外,如果您使用 C,您可以定义一个指向“某物”的指针 - void*。这个可以指向 char、int 或您可以想象的其他类型。注意:这种转变应该是有意识的。这可能是糟糕的架构或其他问题的征兆。

关于c++ - 为什么有不同类型的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42107403/

相关文章:

c - 如何根据数组的大小重新分配?

c++ - 函数中的内存释放 (C++)

c++ - Qtopengl,为什么不能使用不同的 vbo 绘制两个立方体

c++ - 如何使 Angular 落正确显示(看里面的图片)?

c - 调用返回 int 的函数后,在非 void 函数中调用 return 的结果是什么?

c++ - 保留模距离的符号

c++ - 如何遍历类指针的 vector

c++ - 如何删除集合中的对象

c++ - 有没有办法将文字字符串放入 <char...> 模板中?

c - 为什么客户端API和内核的setsockopt第一个参数的类型不同?