-1

C のポインターについて学習しようとしていますが、次のコード スニペットで単語「ノード」の末尾に単項 * 演算子が追加された理由がわかりません。

struct node* CopyList(struct node* head) {
    /* code here */
}

ポインターの私の理解から、次のようなステートメントでポインターを作成できます

int *pointerName;

次のようなステートメントで「pointee」をそれに割り当てます

pointerName = malloc(sizeof(int));

そして、次のようなステートメントでポインターを逆参照します

*pointerName = 4;

これは、pointerName ポインターによって「指し示される」4 バイトのメモリ (pointee の場所) に整数値 4 を格納します。

そうは言っても、* が単語の末尾に追加された場合、それはどういう意味ですか?

struct node*

???

前もって感謝します!

http://cslibrary.stanford.edu/103/

4

5 に答える 5

3

の場所は*、基本型と変数名の間の空白を無視します。あれは:

int* foo; // foo is pointer-to-int
int *bar; // bar is also pointer-to-int

どちらの場合も、変数の型は「pointer-to-int」です。"pointer-to-int" は有効な型です。

struct node*その情報で武装すると、それがtypeであり、その型が「pointer-to-node-structure」であることがわかります。したがって、最後に、行全体

struct node* CopyList(struct node* head)

「 は、 へのポインター(と呼ばれる) を受け取り、 へのポインターを返すCopyList関数」 を意味します。struct nodeheadstruct node

于 2013-07-17T11:25:07.190 に答える
1

int *pointerName;int * pointerName;またはと同じint* pointerName;です。データ型はint*、これらすべての場合にあります。struct node*への単なるポインタですstruct node

于 2013-07-17T11:24:15.777 に答える
0

node*は、次の関数/変数/構造体の型が「型ノードへのポインタ」であることを意味します。

于 2013-07-17T11:24:57.517 に答える