【发布时间】:2017-06-08 05:30:19
【问题描述】:
strcpy 的签名是这样的有什么原因吗:
char *strcpy(char *dest, const char *src);
而不是这个?
char *strcpy(char *const dest, const char *src);
据我所知,该函数永远不会改变指针。
我是否误解了 const 指针应该用于什么?在我看来,当我编写的函数接受不会更改的指针(通过 realloc 等)时,我会将其标记为 const 指针,以便调用者可以确保他们的指针不会在它们上移动。 (如果他们有其他结构/等引用该指针位置将变得过时)
这是一种好的做法,还是会产生意想不到的后果?
【问题讨论】:
-
我认为一个常量只能被初始化/赋值/定义一次或在声明时定义。
-
不仅函数永远不会改变指针。,即使没有const,
strcpy也无法改变dest。
标签: c pointers constants strcpy