当我输入 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/