指针的初始化

Rob*_*ela 3 c c++ pointers

当我输入int * a = 10它时显示错误.但是当我给 char *b = "hello"它时没有显示错误?

我们不能直接将值初始化为指针,但只能在其中实现char.如何在字符指针中分配值?

NPE*_*NPE 8

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

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

int arr[] = {1, 2, 3};
int *a = arr;
Run Code Online (Sandbox Code Playgroud)

(这里也存在constness的问题,我没有解决这个问题以保持简单.如果你想了解更多内容,请参阅这个问题.)


rak*_*hbs 6

这是因为"hello"是一个字符串字面量代表一个arraychar.的起始地址array被分配给指针b的分配char *b = "hello".

10是类型的值,int不能分配给指针int.