int ret(char *)
{
//nothing
}
int main(void)
{
printf("%d\n",ret("foo"));
}
関数 ret がガベージ値を返すのはなぜですか ???
と
int my_strlen(char *s)
{
if(*s)
return 1 + my_strlen(s + 1); // or my_strlen(s+1) + 1;
}
上記の関数では、私が間違っていなければ、条件が失敗したとき (つまり、'\0' に達したとき) に my_strlen は常にジャンク値を返す必要があります。したがって、有効な文字列の場合、常に 1 + ジャンク値を返す必要があります。しかし、そうではありません。それは正常に動作します。任意の文字列の正確な長さを提供します。関数「 ret 」のようにジャンク値を返さないのはなぜですか??? 私の疑問を解消してください。どんな助けでも大歓迎です。ありがとう..