【发布时间】:2018-07-19 09:40:20
【问题描述】:
我经常使用函数strcpy() 来完成一项任务。查看strcpy()的函数原型:
char *strcpy(char *dest, const char *src)
可以看出strcpy()接受了两个指针。
但是,我在网上的很多示例以及我自己的代码中看到,可以通过以下方式复制字符串并且它会起作用:
char array[30];
strcpy(array, "mystring");
printf("%s\n", array);
我的问题是,如果您传递的第二个参数是字符串,为什么 strcpy() 会起作用?第二个参数不需要是指向字符串的指针吗?例如。您是否不必执行以下操作:
const char *str = "mystring";
char array[30];
strcpy(array, str);
printf("%s\n", array);
我很困惑为什么你可以直接将字符串作为第二个参数传递给strcpy(),而不是指向字符串的指针。任何见解都将不胜感激。
【问题讨论】:
-
在这种情况下,C 中的字符串简化为指向第一个元素/字符的指针。
-
C 没有字符串类型。