将字符串分配给指针

时间:2020-06-26 15:41:12

标签: c string pointers

我只想问一个问题:

在这段代码中,我创建了一个字符串和一个指针,将字符串分配给指针的正确方法是什么?

char str[10] = "hello";
char* ptr

它可以与ptr = str一起使用吗? 如果没有,为什么?

1 个答案:

答案 0 :(得分:4)

将此字符串分配给指针的正确方法是什么?

没有。您不能将字符串分配给指针。您只能通过由字符串str初始化的数组"hello"的第一个元素的地址分配指针。这是一个微妙但重要的区别。

它可以与ptr = str一起使用吗?

是的,但是没有将字符串分配给指针。 str衰减为指向char str数组第一个元素的指针。之后,ptr指向包含字符串str的数组"hello"


如果您不想修改字符串,则可以通过初始化指向字符串文字的指针来简化代码,该文字存储在只读存储器中,而不是char的可修改数组中:

const char* ptr = "hello";