一点一点积累。。。。。
一个小例子:
定义成全局变量
#include<stdio.h>
#include<string.h>
char s1[20],*t;
char *fun(char *q){
// printf("%s\n",q);
// printf("%d\n",strlen(q));
//static char s1[20],*t;或者定义成静态变量
int i=0,j;
for(j=0; q[j]!='\0'; j++){
s1[i++]=q[j];
}
s1[i]='\0';
t=s1;
// printf("%s\n",t);
return t;
}
int main(){
int k;
char s[20],*p;
p=s;
scanf("%d %s",&k,p);
p=&s[k-1];
// printf("%s",p);
// fun(p);
printf("%s\n",fun(p));
return 0;
}
直接返回
#include<stdio.h>
#include<string.h>
char *fun(char *q,int k){
char *ss;
ss = q+k-1;
return ss;
}
int main(){
int k;
char s[20],*p;
p=s;
scanf("%d %s",&k,s);
printf("%s\n",fun(p,k));
return 0;
}
函数中的开辟的内存要被系统回收
常规程序中,函数返回的指针通常应该是:
(1)指向静态(static)变量;
(2)指向专门申请分配的(如用malloc)空间;
(3)指向常量区(如指向字符串"hello");
(4)指向全局变量;
(5)指向程序代码区(如指向函数的指针)。