日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

对enum的探讨

發(fā)布時(shí)間:2025/5/22 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对enum的探讨 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近在看《Linux C編程一站式學(xué)習(xí)》,在83頁上看到了這么一句話“枚舉的成員名卻和變量名在同一個(gè)命名空間中,
所以會(huì)出現(xiàn)命名沖突”。忽然感覺C語言中枚舉是有點(diǎn)”貓膩“的。由于當(dāng)時(shí)在圖書館所以只能先用自己這不好用的
腦袋先來猜想一下枚舉的實(shí)現(xiàn):枚舉的每個(gè)成員實(shí)際是一個(gè)變量,他被賦予了相應(yīng)的值,由于枚舉的每個(gè)成員
實(shí)際代表著0,1,2這樣的整數(shù)值,所以進(jìn)一步猜想枚舉的每個(gè)成員是一個(gè)int類型的變量。所以有了枚舉的這些特性:
1)變量名不能和枚舉成員重名
2)枚舉成員實(shí)際對(duì)應(yīng)著0,1,2這樣的整數(shù)
3)不同的成員可以對(duì)應(yīng)著同一個(gè)整數(shù)(相當(dāng)與int a,b;a=b=1;)


可是這畢竟是我的猜想,對(duì)不對(duì)還要在電腦上測(cè)試一下。

view plain
  • ??

  • #include <stdio.h>
    int main()
    {
    enum a {b,c};
    enum d {e,f};

    return 0;
    }
    先敲上如上的代碼(我用vc6.0,因?yàn)檎{(diào)試方便。。。想鄙視的就盡情的鄙視吧... )
    然后用debugger查看b和e的地址結(jié)果卻是:00000000,00000000
    地址怎么會(huì)相同呢?(其實(shí)高手估計(jì)已經(jīng)猜到了怎么回事,不過我太菜,還是不明白)


    賦值一下試試
    #include <stdio.h>
    int main()
    {
    enum a {b=256,c};
    enum d {e=256,f};

    return 0;
    }
    結(jié)果b的e的地址都為00000100,還是相同。


    為什么會(huì)有相同的地址呢,這個(gè)地址是什么意思呢?


    在后來的調(diào)試中,突然注意到了一個(gè)詞:constant


    是的,沒錯(cuò)就是constant!b、c、e和f其實(shí)constant,是對(duì)整形常量的取別名,這樣就可以解釋上面的一切了,
    調(diào)試的時(shí)候我輸入b和e被解釋為對(duì)應(yīng)的常數(shù)了,等于直接查看了地址。。。。。。


    好吧,現(xiàn)在來驗(yàn)證一下b、c、e和f是整形常量


    這個(gè)為b賦值為1是錯(cuò)誤的,而且說明了b不是左值
    #include <stdio.h>
    int main()
    {
    enum a {b=256,c};
    enum d {e=256,f};

    int i=b;

    b=1; ? ? ? //error C2106: '=' : left operand must be l-value

    return 0;
    }


    這個(gè)程序是正確的:
    #include <stdio.h>
    int main()
    {
    enum a {b=256,c};
    enum d {e=256,f};

    enum a g=b; ? ?//b是enum a中定義的
    enum a h=e; ? ?//e是enum d中定義的!!!

    int i=b;

    printf("%d\t%d\t%d\n",g,h,i);
    return 0;
    }
    輸出:256256?? 256


    總結(jié):其實(shí)所謂的枚舉就是對(duì)int取個(gè)別名,如enum a{};和typedef int int_;是相同的效果。而枚舉{}中的成員實(shí)際就是對(duì)相應(yīng)的整形常量進(jìn)行了取別名,
    就是#define b 256這樣的效果罷了。而且這些別名在對(duì)應(yīng)的作用域可以和整形常量一樣使用。


    再來個(gè)例子
    #include <stdio.h> ?//改程序沒有問題(vc6.0和codeblocks)
    #define one 1
    int main()
    {
    enum a {b=256,c=one};
    enum d {e=256,f};
    typedef int int_;


    int_i;
    enum a?j;
    intk;


    i=e;
    j=e;
    k=e;


    i=j;
    j=i;
    k=j;
    j=k;
    i=k;
    k=i;


    i=0;
    j=0;
    k=0;
    return 0;
    }


    學(xué)習(xí)中的一己之見,如有錯(cuò)誤,請(qǐng)務(wù)必指出,感謝!

    轉(zhuǎn)載于:https://www.cnblogs.com/svking/archive/2011/12/08/enum.html

    總結(jié)

    以上是生活随笔為你收集整理的对enum的探讨的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 一区二区三区视频网 | 免费成人91 | 欧美成人精品一区 | 天天看a| 国产特级淫片免费看 | 一本久道久久综合 | 男裸体无遮挡网站 | 黑人操亚洲女人 | 波多野结衣中文字幕久久 | 九色91丨porny丨丝袜 | 本田岬av | 色噜噜狠狠一区二区三区牛牛影视 | 亚洲AV无码成人精品国产一区 | 国产精品国色综合久久 | 蜜桃av成人永久免费 | 射久久久 | 18禁一区二区三区 | 又黄又高潮的视频 | 操碰av| 欧美多p| av直播在线观看 | 人人爽人人爽人人爽人人爽 | 伊人国产视频 | 中文字幕一级片 | 欧美超碰在线观看 | 国产97色 | 狠狠综合 | 亚洲av无码国产精品永久一区 | 无套内谢88av免费看 | 成人性生交大片免费看96 | 在线观看二区 | 日韩在线观看中文字幕 | 激情图片在线视频 | 四虎国产成人精品免费一女五男 | 欧美精品videosex极品 | 日韩a在线播放 | 久久艹国产精品 | 国产在线欧美在线 | 日本亚洲一区二区三区 | 午夜精品福利一区二区 | 日本免费观看视频 | 亚洲一区二区三区网站 | 婷婷玖玖 | 动漫同人高h啪啪爽文 | 黄色一级在线视频 | 亚洲精品成人区在线观看 | 9l视频自拍蝌蚪9l视频成人 | 都市激情亚洲一区 | 欧美精品日韩精品 | 黄网在线免费 | 国产女人18毛片水真多1 | 人与性动交zzzzbbbb | 中文字幕在线观看视频www | 青娱乐超碰在线 | 欧美成人高潮一二区在线看 | 亚洲精选中文字幕 | 在线不欧美| 男男play视频 | 婷婷视频在线观看 | 国产裸体网站 | 老司机午夜精品 | 亚洲一区二区三区四区五区xx | 日韩视频不卡 | 日韩不卡免费视频 | 日本中文字幕第一页 | 日本在线看片 | 日韩欧美亚洲精品 | 女生喷水视频 | 亚洲欧洲精品一区 | 吃瓜网今日吃瓜 热门大瓜 色婷在线 | 国产在线一卡二卡 | 男女午夜激情视频 | 午夜精品福利影院 | a级片在线免费看 | 国产天堂久久 | 亚洲国产激情 | 国产91高清| 欧美日韩亚洲免费 | 免费看黄色一级片 | 国产精品成人电影在线观看 | 日美毛片 | 五月婷婷开心 | 91性高潮久久久久久久 | 丹丹的呻吟声1一7 | 天天操,夜夜操 | 老熟女一区二区三区 | 午夜视频黄 | 日本精品在线观看视频 | 最新中文字幕免费视频 | 国产aa毛片 | 亚洲精品九九 | 国产精品成熟老女人 | 午夜视频观看 | 亚洲一区二区三区加勒比 | 久久久久久久久久久综合 | 桃色网站在线观看 | 蜜桃av一区 | 一级久久久久久久 | 青青草原av |