类型"hello"是一个char数组,它衰变成一个char指针.因此,您可以使用它来初始化类型的变量char*.
类型10是int.它不能隐式转换为int*,因此int *a = 10无效.以下可能是int与您的char示例最接近的等价物:
int arr[] = {1, 2, 3};
int *a = arr;
Run Code Online (Sandbox Code Playgroud)
(这里也存在constness的问题,我没有解决这个问题以保持简单.如果你想了解更多内容,请参阅这个问题.)
这是因为"hello"是一个字符串字面量代表一个array的char.的起始地址array被分配给指针b的分配char *b = "hello".
10是类型的值,int不能分配给指针int.