c++ - 指针的初始化

标签 c++ c pointers

当我输入 int * a = 10 时它显示错误。但是当我输入 char *b = "hello" 时它不显示错误?

我们不能直接将值初始化为指针,但只有在 char 中才有可能。如何在字符指针中分配值?

最佳答案

"hello" 的类型是一个char 数组,decays转换为 char 指针。因此,您可以使用它来初始化 char* 类型的变量。

10 的类型是int。它不能隐式转换为 int*,因此 int *a = 10 无效。以下可能是与您的 char 示例最接近的 int 等效项:

int arr[] = {1, 2, 3};
int *a = arr;

(这里还有一个常量性问题,为了简单起见,我没有解决这个问题。如果您想了解更多信息,请参阅 this question。)

关于c++ - 指针的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27873633/

相关文章:

C++ 多态性 : Does a virtual function in derived class needs to be declared constant if its declared constant in base class

c++ - 替代全局变量/常量

c - 在冒泡排序中获取垃圾值以获得 C 中的最高值

c++ - vector 应用如何使多边形倾斜?

c++ - 如何在 C++ 中序列化一个保留指向其他对象的指针的对象?

c++ - 从 Perl 到 C++ 的正则表达式转换

c++ - 测量重载运算符和成员函数时间的函数

c++ - 将一种结构复制到另一种结构以及改变一种结构对另一种结构的影响

java - 如何在 Java 中使用指针?

c - 如何添加两个字符串?