2010-12-12 20 views
1

こんにちは私はselfstudying Cです。コードを正しく理解しているかどうかわからないので、以下のコードについて少し混乱しています。誰かが私の説明を読んで、私が間違っていると私を訂正することができれば、とても感謝しています。関数と構造体を持つポインタを使用する

コードはヘッダーファイルからのものです。私の理解の問題はポインタと関数が返す値に関するものなので、プログラムの機能はこの時点では面白くないはずです。まず第一に、私は従業員の構造体にcharと整数の3つの配列を宣言しています。

struct employee 
{ 
    char firstname[11]; 
    char lastname[11]; 
    char number[11]; 
    int salary; 
} 


5機能はヘッダファイルで宣言されています。最初の関数は4つの値(3つのポインタと1つのint)をとり、構造体へのポインタを返します。 2番目の関数は "struct employee"へのポインタを取得しますはstruct employeeの配列 "char firstname"の要素にポインタを返します。関数3と4は、両方の他の配列に対して同じことをしています。
関数5はstruct employeeへのポインタを取得しますが、であり、ポインタはではありません。したがって、構造体で宣言された変数を使用しているだけです。返される値/ポインタがsturctから同じ値/ポインタへの参照、または関数(s)はコピーを作成し、へのポインタを返しているかどうかをあなただけの関数のシグネチャを読むことによって確認することはできませんどのような

struct employee* createEmployee(char*, char*, char*, int); //1 
char* firstname (struct Employee*);      //2 
char* lastname (struct Employee*);       //3 
char* number (struct Employee*);       //4 
int salary (struct Employee*);        //5 
+1

機能体がないと、彼らの言うことは難しいですが、署名はあなたが説明したことを示しています。そして、何が問題なのですか? – khachik

+0

私の説明は正しいですか?私はポインタがこの場合どのように動作するのか分かりません。 – Ordo

答えて

関連する問題