簡體   English   中英

我無法理解語句 struct node *a [26] used for.. after we make the structure of a node for linked list

[英]I am unable to understand what is the statement struct node *a [26] used for.. after we make the structure of a node for linked list

struct node{
     int data;
     struct node*next;
};
struct node * a[26];

我們是在制作節點指針數組還是為節點指針分配大小? 請幫助我解決這個問題。

struct node * a[26]; a聲明為一個包含 26 個指向struct node的指針的數組。

本聲明

struct node * a[26];

聲明一個名為a的數組,其中包含26個指針類型struct node *的元素。

這兩個聲明

struct node{
     int data;
     struct node*next;
};
struct node * a[26];

也可以通過以下方式重寫為一個聲明

struct node{
     int data;
     struct node*next;
} * a[26];
struct node * a[26];

讓我們一步一步地檢查它:

閱讀C中的聲明的一種現實方式是 boustrophedonically,即從右到左和從左到右交替,從左側讀取時從第一個標識符開始,直到我們看到分號、括號或到達左側的末尾.

a[26];

聲明一個包含 26 個元素的數組。 我們看到一個分號,所以我們 go 回到左邊:

* a[26];

這變成了一個包含 26 個指針的數組。 我們繼續向左走,因為我們還沒有走到盡頭。

struct node * a[26];

這變成了一個包含 26 個指針的數組,指向struct node類型的 object。

簡而言之, a是一個包含26個指針的數組,指向一個 object 類型的struct node.

注意,實際規則由正式語法和鏡像運算符優先級決定,如下面的評論所述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM