91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

c語言中結構體的聲明、自引用、以及變量的定義和初始化

發布時間:2020-07-30 08:14:46 來源:網絡 閱讀:1474 作者:勿忘勛心 欄目:編程語言

1.結構體的聲明

首先呢,結構是一些值的集合,這些值稱為成員變量,結構的每個成員變量可以是不同類型的變量。

一般的聲明

struct  Book
{
        char name[100];    //書名
        float price;           //價格
}b1,b2;                       //全局變量

struct Book b3;            //全局變量   
//并且上面兩種表示方式是相同的意思

int main()
{
    struct Book b5;           //這里的變量叫做局部變量
        return 0;
}

特殊的聲明

struct
{
    int a;
    char b;
    float c;
    //此處未完全聲明變量,缺少了結構體標簽

    //這種叫做匿名結構體類型
}b;

struct 
{
    int a;
    char b;
    float c;

}*ps;//結構體的指針變量,用來存儲地址

!!但是 ps=&x;
這種寫法是不合法的,編譯器認為這兩種不同的寫法是兩個不同的類型。

2.結構體的自引用

此處,我們用一個例子來講述我們來表述一個數據結構鏈表中的節點

struct Node
{
    int data;
    struct Node*next;

};

int main()
{
    struct Node a = { 3, NULL };
    struct Node b = { 5, &a };
    printf("%d\n", b.data);
    printf("%p\n", b.next);
    system("pause");
    return 0;
}

c語言中結構體的聲明、自引用、以及變量的定義和初始化

下面的地址便是結構體中b指向的地址,即a的地址。


!!!很重要的一點,當結構體自引用的時候,不可寫成匿名結構體類型。

例題如下

typedef struct
{
    int  data;
    Node* next;

}Node;

在此處編譯會出現錯誤,是由于Node在末尾端才定義,但在結構體內部便已經被調用,這樣是非法的。

正確的寫法如下:

typedef struct  Node
{
    int  data;
    struct  Node* next;

}Node;

3.結構體變量的定義和初始化

簡單結構體的初始化

struct Point
{
    int x;
    int y;

};

int main()
{
    struct Point p2 = { 1, 2 };       //定義一個局部變量p2并且給其進行賦值
    printf("%d %d\n", p2.x, p2.y);
    system("pause");
    return 0;
}

結構體嵌套的初始化

struct Point
{
    int x;
    int y;
};
struct Node
{
    int data;
    struct Point p;
    struct Node* next;

};

int main()
{
    struct Node n1 = { 5, { 1, 2 }, NULL };
    struct Node n2 = { 8, { 3, 4 }, &n1 };
    printf("%d\n", n2.next->data);
    printf("%d %d\n", n2.next->p.x, n2.next->p.y);
    printf("%p\n", n2.next);

    system("pause");
    return 0;
}

c語言中結構體的聲明、自引用、以及變量的定義和初始化

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新野县| 淮滨县| 汉阴县| 东平县| 泊头市| 兰坪| 河北省| 阿鲁科尔沁旗| 连江县| 宁陕县| 黄梅县| 三江| 根河市| 阜南县| 资中县| 海兴县| 怀远县| 清新县| 互助| 澄江县| 伊吾县| 黄浦区| 泸州市| 资讯| 白玉县| 绥宁县| 磐安县| 安国市| 南通市| 辽中县| 镇巴县| 福鼎市| 郁南县| 左权县| 治县。| 敦煌市| 灵寿县| 崇信县| 隆回县| 古交市| 桐城市|