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