C语言函数的问题1

#include <stdio.h>
#include<stdlib.h>


void exexe(char * p,int len)
{
      while(*p++)
        len++;
}



int main()
{
    int len = 0 ;
    char * p = "dadasdfas";
    exexe(p,len);
    printf("%s\n",p);
    printf("%d\n",len);
    system("pause");
    return 0 ;
}



以上代码输出的p值依然是字符串 dadasdfas,虽然在函数里把指针移到了最后,但传回主函数后,输出结果依然不变。





#include <stdio.h>
#include<stdlib.h>


int main(){
int len = 0 ;
char * p = "dadasdfas";
//char *c = p;
while(*p++) len++;
// exexe(p,len);
printf("%s\n",p);
printf("%d\n",len);
system("pause");
return 0 ;
}


上述代码将p移至末尾,这时再输出p,得到的是末尾的那个值。

可以看出,包括指针变量,在函数中改变指向后,返回到主函数中,仍然从开头开始输出。这是为什么呢?


原因可能是从函数出来后,函数中的变量将不再保存



   

你可能感兴趣的:(C语言函数的问题1)