ショッピングモール  Earth-Based Religions ( Shintoism )  Earth-Based Religions ( Wicca )


掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.5070

ポインタについて
投稿者---マッピ(2005/12/07 23:29:50)


#include <stdio.h>
char *Myfunc(char o[]);
char *Myfunc(char o[])
{
printf("私たちはMyfunc()のなかにいます。");
printf("引数として%sを受け取りました。\n",o);
printf("そのままを戻り値として返します。\n");
return(o);
}
void main(void)
{
char *o;
char moji[12];
printf("文字を入力してください ");
scanf("%s",moji);
printf("\n");
o=Myfunc(moji);

printf("関数から戻ってきました \n");
printf("戻り値は%sです。\n",o);
}
↑のソースの意味がわかりません。
なぜchar oではなくchar *oを宣言
したのか。そして関数Myfuncがなぜ*Myfuncでなければならないのでしょうか?


自分なりに調べてみたのですがchar moji[12]は配列である。そして配列はポインタでもある。(←ここがわからない)
だからその配列(ポインタ)を渡すから関数もポインタで宣言しなければならないってことなんでしょうか?

(char *o[])になるのでは?だとしたらchar *Myfunc(char o[])ではなくchar Myfunc(char *o[])になるような気がするのですが・・・
  *は何をしているのでしょうか?



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ポインタについて 5071 Blue 2005/12/07 23:47:26
<子記事> Re:ポインタについて 5073 まきじ 2005/12/07 23:51:32
<子記事> ★★★ソースの添付は字下げしてくださるようにお願いします 5075 管理人 2005/12/08 17:45:52


No.5071

Re:ポインタについて
投稿者---Blue(2005/12/07 23:47:26)


とりあえず、
10−2.配列とポインタ
を一読してみてください。

それと、掲示板規則にも書いてありますが、
> ソースの添付は「HTML変換ツール」で字下げします。
は守ってください。


この投稿にコメントする

削除パスワード

No.5073

Re:ポインタについて
投稿者---まきじ(2005/12/07 23:51:32)


>なぜchar oではなくchar *oを宣言したのか。

Myfunc() の戻り値が char* 型だから。

>そして関数Myfuncがなぜ*Myfuncでなければならないのでしょうか?

*Myfunc という関数名ではなく char* という戻り値の型です。

>そして配列はポインタでもある。(←ここがわからない)

配列はポインタではありません。

>関数もポインタで宣言しなければならないってことなんでしょうか?

引数の char 型へのポインタ o を返すから
戻り値の型(関数の型)は char* となります。

>char *Myfunc(char o[])ではなくchar Myfunc(char *o[])になるような気がするのですが・・・

T 型の配列は T 型へのポインタに変換されるので、char *o となります。

>  *は何をしているのでしょうか?

ポインタ変数という事を表しています。


この投稿にコメントする

削除パスワード

No.5075

★★★ソースの添付は字下げしてくださるようにお願いします
投稿者---管理人(2005/12/08 17:45:52)


投稿上の注意をお読みの上、字下げをしたプログラムを再投稿してくださるようお願いいたします。



この投稿にコメントする

削除パスワード

No.5076

すいませんでした。
投稿者---マッピ(2005/12/08 22:56:30)


 皆さん非常に丁寧な解説ありがとうございました。

管理人様もうしわけございませんでした。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity