前提・実現したいこと
c言語の勉強をしています。
構造体を勉強しているのですが、以下のコードの構造体の宣言の仕方、関数の返り値のデータ型が分かりません。
下でプロトタイプ宣言をしてますが、これは
(*)get_stringP()
という関数が構造体tag_stringの変数になっているということでうか?
関数を変数として置いていることがイマイチ理解できません。このように置いた場合、普通のデータ型の変数と何が違うのですか?
また、宣言の下に関数
get_stringP(),get_stringP()
の中身が書かれていますが、これは返り値(&)aがstruct tag_string ()型の変数として返ってくるものだと勝手に理解しているのですが、この場合、(&)aがone.string[16]に代入されたということなのでしょうか?
初心者で色々と勘違いしている点があると思いすが、誰か教えてくれ人お願いします。
該当のソースコード
c言語
1 2ソースコード
#include <stdio.h>
struct tag_string{
char one_string[16];
};
struct tag_string *get_stringP(void);
struct tag_string get_stringP(void);
struct tag_string *
get_stringP(void);
{
struct tag_string a;
//プログラムの処理
return &a;
}
struct tag_string
get_stringP(void);
{
struct tag_string a;
//プログラムの処理
return a;
}
回答2件
あなたの回答
tips
プレビュー