我只想问一个问题:
在这段代码中,我创建了一个字符串和一个指针,将字符串分配给指针的正确方法是什么?
char str[10] = "hello";
char* ptr
它可以与ptr = str
一起使用吗?
如果没有,为什么?
答案 0 :(得分:4)
将此字符串分配给指针的正确方法是什么?
没有。您不能将字符串分配给指针。您只能通过由字符串str
初始化的数组"hello"
的第一个元素的地址分配指针。这是一个微妙但重要的区别。
它可以与
ptr = str
一起使用吗?
是的,但是没有将字符串分配给指针。 str
衰减为指向char
str
数组第一个元素的指针。之后,ptr
指向包含字符串str
的数组"hello"
。
如果您不想修改字符串,则可以通过初始化指向字符串文字的指针来简化代码,该文字存储在只读存储器中,而不是char
的可修改数组中:
const char* ptr = "hello";