#include <stdio.h>
#include <string.h>
#define LEN 100
#define LIMIT 2
char *find_char(char, char *);
int main(void)
{
char c;
char line_w[LEN];
char *p;
printf("你有%d次的测试机会\n", LIMIT);
for(int i = 1; i <= LIMIT; i++)
{
printf("请输入一个字符:");
c = getchar();
while(getchar() != '\n')continue;
printf("请输入一行:\n");
gets(line_w);
p = find_char(c, line_w);
printf("该字符的地址为:%p\n", p);
printf("使用函数strchr的结果为:%p\n", strchr(line_w, c));
}
return 0;
}
char *find_char(char c, char *source)
{
while(*source)
{
if(c == *source)
{
return source;
}
source++;
}
}
函数find_char中改变了source 值,为什么line_w的值却没变~~~
记得数组名,是不可以操作的~~~
------解决方案--------------------------------------------------------
需要传指针的地址,这样传参传进去的只是副本
------解决方案--------------------------------------------------------
p = find_char(c, line_w);
这里 line_w是实参
source是形参
实参,形参,,,,这是不同的俩变量