戻り値の概念がひどく曖昧です。戻り値というものを調べると関数に値を返すとだけ書いてあります。
その返すという表現がひどく曖昧です。
①何故値を返すのですか?(void型は例外)決まりなのですか?
②若干①とかぶりますが値を返すとどうなるのですか?
char *str_chr(const char *s,int c)
{
c=(char);
while(*s!=c){
if(*s=='\0')
return (NULL);
s++
}
return((char *)s);
}
例えば上記の例で言うとどういう風になるのでしょう。【引数に関するご質問】
char *str_chr(const char *s,int c)
{
c=(char);
while(*s!=c){
if(*s=='\0')
return (NULL);
s++
}
return((char *)s);
}
int main(void)
{
char *ptr;
char ch[2];
char letter[/url]="ABCDEFGHIJKLMN";
printf("英大文字を入力してください\n");
scanf("%s",&ch);
if((ptr=str_chr(letter,ch[0]))==NULL)
printf("%cは英大文字ではありません\n",ch[0]);
else
printf("%cからの跡のアルファベットは%sです\n",ch[0],ptr);
return 0;
}
実引数と狩引数は別の文字でも構わないとは聞いたことありますが(const char *s,int c)の値が(letter,ch[0])に渡されていますよね。
型まで完全に違うのに渡せるっというのはイメージが掴みずらいのですが、
説明していただける方いませんか?