C語言結構體如何使用

蝸牛 互聯網技術資訊 2022-05-07 128 0

本文小編為大家詳細介紹“C語言結構體如何使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“C語言結構體如何使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

    本質

    一些值的集合。

    簡單使用

    #include?<stdio.h>
    struct?User?{
    	char?uName[20];
    	char?uPass[20];
    };
    int?main()?{
    	struct?User?u1?=?{
    		"abc","123"
    	};
    	printf("%s\n",?u1.uName);
    	printf("%s\n",?u1.uPass);
    	return?0;
    }

    效果:

    C語言結構體如何使用  c語言 第1張

    一些寫法

    聲明之后,可以立即創建實例。

    也可以單獨聲明。

    #include?<stdio.h>
    struct?User?{
    	char?uName[20];
    	char?uPass[20];
    }?u1,?u2,?u3;
    struct?User?u4;
    int?main()?{
    	struct?User?u5;
    	return?0;
    }

    匿名結構體:我用了,你們別想再用。

    struct?{
    	char?uName[20];
    	char?uPass[20];
    }x;

    我套我自己

    只能套指針,因為空間有限。

    舉例:鏈表。

    #include?<stdio.h>
    struct?Node?{
    	int?val;
    	struct?Node*?next;
    };
    int?main()?{
    	struct?Node?a?=?{?333,NULL?};
    	struct?Node?b?=?{?666,&a?};
    	printf("%d\n",?(*b.next).val);
    	return?0;
    }

    效果:

    C語言結構體如何使用  c語言 第2張

    內存對齊

    結構體放成員,是一個一個放的。

    第一個放到首個地址處。

    第二個開始,計算一個對齊數,該數是以下兩個值的較小者:

    1,VS的默認值,8。

    2,該成員所占字節數。

    實際的偏移量是對齊數的整數倍。

    最后,結構體的大小是最大對齊數的整數倍。

    舉例-int char char

    #include?<stdio.h>
    struct?A?{
    	int?a;
    	char?b;
    	char?c;
    };
    int?main()?{
    	struct?A?a?=?{?1,1,1?};
    	printf("%lld",?sizeof(a));
    	return?0;
    }

    效果:8

    C語言結構體如何使用  c語言 第3張

    圖解:

    int放在首位。

    char占1字節,直接放。

    第二個char也是。

    最后長度,按int的字節數的整數倍,也就是8。

    C語言結構體如何使用  c語言 第4張

    舉例-char int char

    #include?<stdio.h>
    struct?A?{
    	char?b;
    	int?a;
    	char?c;
    };
    int?main()?{
    	struct?A?a?=?{?1,1,1?};
    	printf("%lld",?sizeof(a));
    	return?0;
    }

    效果:12

    C語言結構體如何使用  c語言 第5張

    圖解:

    char直接放。

    int從第四個開始放。

    char直接放。

    最后長度:從9開始第一個4的倍數,12。

    C語言結構體如何使用  c語言 第6張

    舉例-char char int

    #include?<stdio.h>
    struct?A?{
    	char?b;
    	char?c;
    	int?a;
    };
    int?main()?{
    	struct?A?a?=?{?1,1,1?};
    	printf("%lld",?sizeof(a));
    	return?0;
    }

    效果:8

    C語言結構體如何使用  c語言 第7張

    圖解:兩個char直接放。

    int從下一個4的整數倍,也就是第五個開始放。

    最后長度:從8開始第一個4的倍數,8。

    C語言結構體如何使用  c語言 第8張

    由結構體指針訪問成員

    就是一種箭頭的寫法。

    #include?<stdio.h>
    struct?A?{
    	int?a;
    };
    int?main()?{
    	struct?A?a?=?{?333?};
    	struct?A*?b?=?&a;
    	printf("%d\n",?b->a);
    	return?0;
    }

    效果:

    C語言結構體如何使用  c語言 第9張

    讀到這里,這篇“C語言結構體如何使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注蝸牛博客行業資訊頻道。

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

    評論

    2018人人澡人摸人人添_月夜影视在线观看资源_一本二卡三卡四卡乱码小说_tobu8在线观看下载