首先,如果这个问题很愚蠢,我很抱歉 我是 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/