我有一个关于初始化 char 指针与其他数据类型指针的问题。具体来说,我们可以按如下方式初始化 char 指针:
char *char_ptr = "Hello World";
据我所知,字符串唯一的特别之处在于它是一个以“0”结尾的字符数组。但是,我们不允许执行以下操作:
int *int_ptr = {1,2,3,4};
但我们必须这样做:
int int_arr[] = {1,2,3,4};
int_ptr = int_arr;
为了让 int_ptr 指向 int_array 的第一个元素。
在 char 的情况下,在让 char_ptr 指向字符串之前,我们没有将字符串“Hello World”显式定义为 char 数组,而是直接使用字符串“Hello World”初始化 char_ptr。
我的问题是,为什么会出现这种情况,字符串有什么特别之处可以让我们这样做但不能对其他类型这样做?
提前致谢,
斯里拉姆