質問
下記のようなstrcpyの実現例をみて、charのポインタ型のpを用意しなくてもいいのでは?と考えpを省いてコードをかいてみたのですが、返却値がおかしくなりました。
返却値がおかしくなることについて解説してくださると嬉しいです。
該当のソースコード
c
1char *strcpy2(char *s1,const char *s2){ 2 char *p=s1; 3 while(*s1++=*s2++) 4 ; 5 return p; 6}
c
1char *strcpy2(char *s1,const char *s2){ 2 3 while(*s1++=*s2++) 4 ; 5 return s1; 6}
c
1int main(void){ 2 char s1[]="abcdef"; 3 char s2[]="ABCD"; 4 char *s3=strcpy2(s1,s2); 5 printf("%s\n",s1); 6 printf("%s\n",s3); 7 return 0; 8} 9実行結果 10ABCD 11f
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/06 09:56