这是一个从 C 编程书籍(Programming in C, S. Kochan)中将字符串复制到新字符串的简单程序。它运行良好,但是有一个我没有看到初始化的指针。我在这里为指针而苦苦挣扎,但我在编码中嵌入了 C 黄金诫命:“您不应使用未初始化的指针”。这是代码:
#include <stdio.h>
void copyString(char *to, char *from) //I do not see where the 'from' pointer is initilized?
{
for( ; *from != '\0'; ++from, ++to)
{
*to = *from;
}
*to = '\0';
}
int main(void)
{
void copyString (char *to, char *from);
char string1[] = "A string to be copied.";
char string2[50];
copyString(string2, string1);
printf("%s\n", string2);
copyString(string2, "So is this.");
printf("%s\n", string2);
return 0;
}
我的印象是所有指针都必须以以下方式初始化:
*ptr = &variable;
或冒着系统中重要的东西被覆盖的风险。但是我在我的书中看到许多程序没有明确地初始化指针,这让我很不舒服。请给我一些关于谨慎使用指针的提示,这样我就不会破坏我的机器,尤其是与字符串有关的任何东西。提前谢谢大家!