å¯ä»¥ä½¿ç¨
éæåéè¿è¡è¿åãç¨æéä¼ éãéè¿è¿åä¼ å
¥æ°ç»çæéä¸ç§æ¹æ³å®ç°ï¼
代ç åå«å¦ä¸ï¼
// æ¹æ³1,ç¨éæåéè¿è¡è¿å
char *SubFunction(void)
{
static char szText[5] = "adfa"; // ç¨éæ空é´
//对pè¿è¡èµå¼æä½
return szText;
}
void Caller() // è¿ä¸ªå½æ°è°ç¨SubFunction
{
TRACE("%s\n", SubFunction);
}
// æ¹æ³2,ç¨æéä¼ é
void SubFunction(char *pText1, char *pText2)
{
// 对pText1, pText2è¿ç®
strcpy(pText1, "love");
strcpy(pText2, "you");
return;
}
void Caller() // è¿ä¸ªå½æ°è°ç¨SubFunction
{
char szText1[5], szText2[5]; // å½ç¶è¿éä¹å¯ä»¥å¨æåé
å
å
SubFunction(szText1, szText2); // szText1, szText2å°±æ¯å¸¦åçå¼
TRACE("%s %s\n", szText1, szText2);
}
æ¹æ³3 éè¿è¿åä¼ å
¥æ°ç»çæé
#include<stdio.h>
double *copy1(double array[],double c1[],int n);
double *copy2(double array[],double c2[],int n);
void main(void)
{
int size=4;
double source[4]={1,2.3,4.5,6.7};
double first_copy[4];
double second_copy[4];
double *fp,*sp;
fp=copy1(source,first_copy,size);
printf("The first copy: %f,%f,%f,%f\n",fp[0],fp[1],fp[2],fp[3]);
sp=copy2(source,second_copy,size);
printf("The second copy: %f,%f,%f,%f\n",sp[0],sp[1],sp[2],sp[3]);
}
double *copy1(double array[],double c1[],int n)
{
int i;
for(i=0;i<n;i++)
c1[i]=array[i];
return c1;
}
double *copy2(double array[],double c2[],int n)
{
double *p;
int i;
for(i=0;i<n;i++)
{
p=&array[i];
c2[i]=*p;
}
return c2;
}