void f1(char str1[], char str2[]) { uint8 i=0; while(str2!='\0') { str1=str2; i++; } }
void f2(char *str1, char *str2) { for (;*str2!='\0';str1++,str2++) *str1 = *str2; //不会将str2的复制到str1 }
void StrProcess(void) { //char s1[]="1234567890"; //char s2[]="4000"; char *s1="1234567890"; char *s2="4000";
f1(s1,s2); //f2(s1,s2); }
开发环境:LM615,KEIL MDK3.05
如果采用数组的方式,S1的数据会改变为"4000567890" 如果采用字符串指针的方式,则S1的数据不会改变。 不知是什么原因? |