精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言必備知識共用體

CHANBAEK ? 來源:小李的創客實驗室 ? 作者:初出茅廬的小李 ? 2023-11-29 16:04 ? 次閱讀

C語言必備知識共用體

共用體是一種 構造數據類型 ,有時候也稱之為聯合體。它的用途:使幾個不同類型的變量共占一段內存。

共用體舉例

union 共用體名
{ 
	類型標識符    成員名;
	類型標識符    成員名;
};
union data    //共用體名字是data
 {   
 	int i;    //整型數據
    char ch;  //字符型數據
    float f;  //浮點型數據
 };

共用體特點

共用體變量任何時刻只有一個成員存在 共用體變量定義分配內存的長度=最長成員所占字節數

驗證一下

#include < stdio.h > //printf scanf fputc

union data    //共用體名字是data
 {   
 	int i;    //整型數據
    char ch;  //字符型數據
    float f;  //浮點型數據
 };

union data dddd; 
int main(void)
{
 	printf("共用體內存是:%drn",sizeof(dddd));//實際打印的是float所占內存大小
	printf("float內存是:%drn",sizeof(float));//實際打印的是float所占內存大小 
	printf("int內存是%drn",sizeof(int));
	printf("char內存是:%drn",sizeof(char));
 	return0;
}

共用體變量里面內存的大小可以說跟float內存大小一樣。也可以說是跟int大小一樣,這里都是4個字節。

共用體變量的定義

//定義共用體的時候把變量寫在共用體的后面 例如這里的a b都是共用體類型的變量名
union data 
{ 
  int i;
  char ch;
  float f;
}a,b;

//用共用體來定義 dddd就是共用體類型的變量名
union data dddd; 

//共用體指針定義
union data *p;

//共用體數組定義
union data d[3];

//省略類型名字的 共用體變量 a b c
union
{ 
   int i;
   char ch;
   float f;
 } a,b,c;

測試代碼如下

union
{ 
   int i;
   char ch;
   float f;
} a,b,c;

int main(void)
{
 	printf("共用體內存是:%drn",sizeof(a));//實際打印的是float所占內存大小
	printf("float內存是:%drn",sizeof(float));//實際打印的是float所占內存大小 
	printf("int內存是%drn",sizeof(int));
	printf("char內存是:%drn",sizeof(char));
 	return0;
}

共用體變量的引用方式3種

  • 共用體變量名.成員名
  • 共用體指針名->成員名
  • (*共用體指針名).成員名

跟結構體非常相似 變量訪問用點、指針訪問用箭頭、星號可以把指針的內容取出。

dddd.i = 1;
        printf("dddd.i  = %drn",dddd.i);

	dddd.ch = 'm';
	printf("dddd.ch = %crn",dddd.ch);

	dddd.f = 1.3;
	printf("dddd.f  = %frn",dddd.f);

注意:

  • 同一個內存段可以用來存放幾種不同類型的成員,但在每 一瞬時只能存放其中一種,而不是同時存放幾種。
  • 共用體變量中起作用的成員是最后一次存放的成員 只保留了1.3

圖片
在這里插入圖片描述

  • 共用體變量和它的各成員的地址都是同一地址

圖片至此,共用體的知識點簡單說完了。

附上代碼:

#include < stdio.h > //printf scanf fputc

union data    //共用體名字是data
 {   
 	int i;    //整型數據
    char ch;  //字符型數據
    float f;  //浮點型數據
 };
union data dddd; 

union data *p; 
int main(void)
{
    dddd.i = 1;
    dddd.ch = 'm';
    dddd.f = 1.3;
    printf("dddd.i  = %drn",dddd.i);
    printf("dddd.ch = %crn",dddd.ch);
    printf("dddd.f  = %frn",dddd.f);
    printf("i地址  = %prn",&dddd.i);
    printf("ch地址 = %prn",&dddd.ch);
    printf("f地址  = %prn",&dddd.f);
 	return0;
}

!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    8

    文章

    2903

    瀏覽量

    73540
  • C語言
    +關注

    關注

    180

    文章

    7575

    瀏覽量

    134092
  • 代碼
    +關注

    關注

    30

    文章

    4671

    瀏覽量

    67769
收藏 人收藏

    評論

    相關推薦

    C語言基礎知識科普

    C語言是單片機開發中的必備基礎知識,本文列舉了部分STM32學習中比較常見的一些C語言基礎
    發表于 07-21 10:58 ?1815次閱讀

    C語言-枚舉、共用

    前面章節學習了結構,結構里可以按順序存放相同或者不同的數據類型,每個成員都有它對應的存儲空間。 而共用和結構一樣也可以按順序存放相
    的頭像 發表于 09-09 11:31 ?892次閱讀

    C51單片機及C語言知識必備秘籍

      電子發燒友網訊:應廣大電子發燒友網讀者要求,本電子書《C51單片機及C語言知識必備秘籍》為《單片機關鍵
    發表于 07-30 13:59 ?9776次閱讀

    C51單片機及C語言知識必備秘籍

    C51單片機及C語言知識必備秘籍
    發表于 09-28 23:18

    C51單片機及C語言知識必備秘籍

    C51單片機及C語言知識必備秘籍
    發表于 12-20 22:50

    c51單片機必備c語言知識

    c51單片機必備c語言知識
    發表于 01-05 22:51

    什么是C語言共用

    ;volatile unsigned char G: 1;volatile unsigned char DP: 1; } B; volatile unsigned char W;} ;這是個什么共用?怎么稱呼的?這是共用
    發表于 10-25 02:32

    結構共用的區別

    轉載重點:共用的所有成員占用同一段內存,修改一個成員會影響其余所有成員。圖形分析影響過程通過前面的講解,我們知道結構(Struct)是一種構造類型或復雜類型,它可以包含多個類型不同的成員。在
    發表于 07-20 06:57

    C語言的結構共用在單片機中的妙用是什么

    【分享】C語言的結構共用在單片機中的妙用C語言
    發表于 11-30 06:13

    怎樣去使用C語言的結構共用

    C語言的結構共用分別有何特點呢?怎樣去使用C語言
    發表于 01-17 07:51

    聯合體/共用的使用方法

    大家好,我是ZhengN。本次給分享聯合體的一些知識。聯合體/共用的使用 C語言中,聯合體/共用
    發表于 02-28 10:05

    C語言程序設計教程之結構共用的詳細資料說明

    本文檔詳細介紹的是C語言程序設計教程之結構共用的詳細資料說明主要內容包括了:1 結構,2
    發表于 03-01 17:20 ?11次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>程序設計教程之結構<b class='flag-5'>體</b>與<b class='flag-5'>共用</b><b class='flag-5'>體</b>的詳細資料說明

    C語言的結構共用在單片機中的妙用

    【分享】C語言的結構共用在單片機中的妙用C語言
    發表于 11-20 19:36 ?20次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的結構<b class='flag-5'>體</b>和<b class='flag-5'>共用</b><b class='flag-5'>體</b>在單片機中的妙用

    什么是C語言共用類型

    結構變量所占內存長度是各成員占的內存長度之和。每個成員分別占有其自己的內存單元。而共用變量所占的內存長度等于最長的成員的長度。
    的頭像 發表于 03-24 15:13 ?663次閱讀

    C語言編程必備知識合集

    電子發燒友網站提供《C語言編程必備知識合集.zip》資料免費下載
    發表于 11-21 09:34 ?0次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>編程<b class='flag-5'>必備</b><b class='flag-5'>知識</b>合集