一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語(yǔ)言必備知識(shí)共用體

CHANBAEK ? 來(lái)源:小李的創(chuàng)客實(shí)驗(yàn)室 ? 作者:初出茅廬的小李 ? 2023-11-29 16:04 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

C語(yǔ)言必備知識(shí)共用體

共用體是一種 構(gòu)造數(shù)據(jù)類(lèi)型 ,有時(shí)候也稱(chēng)之為聯(lián)合體。它的用途:使幾個(gè)不同類(lèi)型的變量共占一段內(nèi)存。

共用體舉例

union 共用體名
{ 
	類(lèi)型標(biāo)識(shí)符    成員名;
	類(lèi)型標(biāo)識(shí)符    成員名;
};
union data    //共用體名字是data
 {   
 	int i;    //整型數(shù)據(jù)
    char ch;  //字符型數(shù)據(jù)
    float f;  //浮點(diǎn)型數(shù)據(jù)
 };

共用體特點(diǎn)

共用體變量任何時(shí)刻只有一個(gè)成員存在 共用體變量定義分配內(nèi)存的長(zhǎng)度=最長(zhǎng)成員所占字節(jié)數(shù)

驗(yàn)證一下

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

union data    //共用體名字是data
 {   
 	int i;    //整型數(shù)據(jù)
    char ch;  //字符型數(shù)據(jù)
    float f;  //浮點(diǎn)型數(shù)據(jù)
 };

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

共用體變量里面內(nèi)存的大小可以說(shuō)跟float內(nèi)存大小一樣。也可以說(shuō)是跟int大小一樣,這里都是4個(gè)字節(jié)。

共用體變量的定義

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

//用共用體來(lái)定義 dddd就是共用體類(lèi)型的變量名
union data dddd; 

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

//共用體數(shù)組定義
union data d[3];

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

測(cè)試代碼如下

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

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

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

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

跟結(jié)構(gòu)體非常相似 變量訪(fǎng)問(wèn)用點(diǎn)、指針訪(fǎng)問(wèn)用箭頭、星號(hào)可以把指針的內(nèi)容取出。

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);

注意:

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

圖片
在這里插入圖片描述

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

圖片至此,共用體的知識(shí)點(diǎn)簡(jiǎn)單說(shuō)完了。

附上代碼:

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

union data    //共用體名字是data
 {   
 	int i;    //整型數(shù)據(jù)
    char ch;  //字符型數(shù)據(jù)
    float f;  //浮點(diǎn)型數(shù)據(jù)
 };
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;
}

!

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3122

    瀏覽量

    75248
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7632

    瀏覽量

    141641
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70697
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C語(yǔ)言基礎(chǔ)知識(shí)科普

    C語(yǔ)言是單片機(jī)開(kāi)發(fā)中的必備基礎(chǔ)知識(shí),本文列舉了部分STM32學(xué)習(xí)中比較常見(jiàn)的一些C語(yǔ)言基礎(chǔ)
    發(fā)表于 07-21 10:58 ?2091次閱讀

    C語(yǔ)言-枚舉、共用

    前面章節(jié)學(xué)習(xí)了結(jié)構(gòu),結(jié)構(gòu)里可以按順序存放相同或者不同的數(shù)據(jù)類(lèi)型,每個(gè)成員都有它對(duì)應(yīng)的存儲(chǔ)空間。 而共用和結(jié)構(gòu)一樣也可以按順序存放相
    的頭像 發(fā)表于 09-09 11:31 ?1266次閱讀

    C51單片機(jī)及C語(yǔ)言知識(shí)點(diǎn)必備秘籍

      電子發(fā)燒友網(wǎng)訊:應(yīng)廣大電子發(fā)燒友網(wǎng)讀者要求,本電子書(shū)《C51單片機(jī)及C語(yǔ)言知識(shí)點(diǎn)必備秘籍》為《單片機(jī)關(guān)鍵
    發(fā)表于 07-30 13:59 ?9996次閱讀

    C51單片機(jī)及C語(yǔ)言知識(shí)點(diǎn)必備秘籍

    C51單片機(jī)及C語(yǔ)言知識(shí)點(diǎn)必備秘籍
    發(fā)表于 09-28 23:18

    C51單片機(jī)及C語(yǔ)言知識(shí)點(diǎn)必備秘籍

    C51單片機(jī)及C語(yǔ)言知識(shí)點(diǎn)必備秘籍
    發(fā)表于 12-20 22:50

    c51單片機(jī)必備c語(yǔ)言知識(shí)

    c51單片機(jī)必備c語(yǔ)言知識(shí)
    發(fā)表于 01-05 22:51

    什么是C語(yǔ)言共用

    ;volatile unsigned char G: 1;volatile unsigned char DP: 1; } B; volatile unsigned char W;} ;這是個(gè)什么共用?怎么稱(chēng)呼的?這是共用
    發(fā)表于 10-25 02:32

    結(jié)構(gòu)共用的區(qū)別

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

    C語(yǔ)言的結(jié)構(gòu)共用在單片機(jī)中的妙用是什么

    【分享】C語(yǔ)言的結(jié)構(gòu)共用在單片機(jī)中的妙用C語(yǔ)言
    發(fā)表于 11-30 06:13

    怎樣去使用C語(yǔ)言的結(jié)構(gòu)共用

    C語(yǔ)言的結(jié)構(gòu)共用分別有何特點(diǎn)呢?怎樣去使用C語(yǔ)言
    發(fā)表于 01-17 07:51

    聯(lián)合體/共用的使用方法

    大家好,我是ZhengN。本次給分享聯(lián)合體的一些知識(shí)。聯(lián)合體/共用的使用 C語(yǔ)言中,聯(lián)合體/共用
    發(fā)表于 02-28 10:05

    C語(yǔ)言程序設(shè)計(jì)教程之結(jié)構(gòu)共用的詳細(xì)資料說(shuō)明

    本文檔詳細(xì)介紹的是C語(yǔ)言程序設(shè)計(jì)教程之結(jié)構(gòu)共用的詳細(xì)資料說(shuō)明主要內(nèi)容包括了:1 結(jié)構(gòu),2
    發(fā)表于 03-01 17:20 ?11次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>程序設(shè)計(jì)教程之結(jié)構(gòu)<b class='flag-5'>體</b>與<b class='flag-5'>共用</b><b class='flag-5'>體</b>的詳細(xì)資料說(shuō)明

    C語(yǔ)言的結(jié)構(gòu)共用在單片機(jī)中的妙用

    【分享】C語(yǔ)言的結(jié)構(gòu)共用在單片機(jī)中的妙用C語(yǔ)言
    發(fā)表于 11-20 19:36 ?20次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>的結(jié)構(gòu)<b class='flag-5'>體</b>和<b class='flag-5'>共用</b><b class='flag-5'>體</b>在單片機(jī)中的妙用

    什么是C語(yǔ)言共用類(lèi)型

    結(jié)構(gòu)變量所占內(nèi)存長(zhǎng)度是各成員占的內(nèi)存長(zhǎng)度之和。每個(gè)成員分別占有其自己的內(nèi)存單元。而共用變量所占的內(nèi)存長(zhǎng)度等于最長(zhǎng)的成員的長(zhǎng)度。
    的頭像 發(fā)表于 03-24 15:13 ?1071次閱讀

    C語(yǔ)言編程必備知識(shí)合集

    電子發(fā)燒友網(wǎng)站提供《C語(yǔ)言編程必備知識(shí)合集.zip》資料免費(fèi)下載
    發(fā)表于 11-21 09:34 ?0次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>編程<b class='flag-5'>必備</b><b class='flag-5'>知識(shí)</b>合集