当前位置: 代码迷 >> C++ >> 关于指针有个小疑义
  详细解决方案

关于指针有个小疑义

热度:8347   发布时间:2013-02-26 00:00:00.0
关于指针有个小疑问?
#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是形参

实参,形参,,,,这是不同的俩变量
  相关解决方案