【发布时间】:2021-02-04 14:55:40
【问题描述】:
我对 c 等低级编程相对较新。我正在查看 strstr() 函数here。在查看函数定义 char *strstr(const char *str1, const char *str2); 时,我了解到该函数将返回一个指针或 NULL,具体取决于是否在 str1 中找到了 str2。
但我无法理解的是,如果函数需要两个输入作为指针,那么示例何时不使用指针?
#include <string.h>
int main ()
{
char string[55] ="This is a test string for testing";
char *p;
p = strstr (string,"test");
if(p)
{
printf("string found\n" );
printf ("First occurrence of string \"test\" in \"%s\" is"\
" \"%s\"",string, p);
}
else printf("string not found\n" );
return 0;
}
【问题讨论】:
-
字符串是数组。当传递给函数时,数组会变成(衰减到)指针。
-
为什么你认为这个例子没有使用指针?
string是char *,"test"也是。 (而string是一个char数组,衰减为char *)