指针直接分配给字符串?有什么缺点?

时间:2016-11-22 19:48:45

标签: c pointers memory

所以,

 const char *p= "hi";

 char a[2]= {'h', 'i'};
 char *p= a;

这两者在语法上都是正确的,但是有一个优于另一个吗?我以前认为你不能做* p =" hi&#34 ;; as" hi"它没有明确地分配任何内存,就像在案例2中它在数组a [2]中定义的那样。

1 个答案:

答案 0 :(得分:0)

在第一个例子中,p是只读的(const),只读存储器是“更快”的。因为编译器可以优化它。另外p 实际等于'h', 'i', '\0'

第二个p是可修改的,你可以进行p[0] = 'd'等操作。但是,如果要在任何地方打印出来,则需要在字符串末尾添加'\0'