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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C和C++中struct和typedef struct的异同

發布時間:2025/1/21 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C和C++中struct和typedef struct的异同 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

分三塊來講述:
  1 首先://注意在C和C++里不同
    在C中定義一個結構體類型要用typedef:
    typedef struct Student
    {
    int a;
    }Stu;
    于是在聲明變量的時候就可:Stu stu1;(如果沒有typedef就必須用struct Student stu1;來聲明)
    這里的Stu實際上就是struct Student的別名。Stu==struct Student
    另外這里也可以不寫Student(于是也不能struct Student stu1;了,必須是Stu stu1;)
    typedef struct
    {
    int a;
    }Stu;
    但在c++里很簡單,直接
    struct Student
    {
    int a;
    };    
    于是就定義了結構體類型Student,聲明變量時直接Student stu2;
======================================================================================

  2.其次:
    在c++中如果用typedef的話,又會造成區別:
    struct?? Student???
    {???
    int?? a;???
    }stu1;//stu1是一個變量??

?
    typedef?? struct?? Student2???
    {???
    int?? a;???
    }stu2;//stu2是一個結構體類型=struct Student??

?
    使用時可以直接訪問stu1.a
    但是stu2則必須先?? stu2 s2;
    然后?????????????? s2.a=10;
======================================================================================

  3 掌握上面兩條就可以了,不過最后我們探討個沒多大關系的問題
    如果在c程序中我們寫:
    typedef struct??
    {
    int num;
    int age;
    }aaa,bbb,ccc;
    這算什么呢?
    我個人觀察編譯器(VC6)的理解,這相當于
    typedef struct??
    {
    int num;
    int age;
    }aaa;
    typedef aaa bbb;
    typedef aaa ccc;
    也就是說aaa,bbb,ccc三者都是結構體類型。聲明變量時用任何一個都可以,在c++中也是如此。但是你要注意的是這個在c++中如果寫掉了typedef關鍵字,那么aaa,bbb,ccc將是截然不同的三個對象。

    //此處不是很理解。

  ?

?

?

    typedef struct和struct的區別:

?

?

    typedef struct tagMyStruct
    {?
     int iNum;
     long lLength;
    } MyStruct;

    上面的tagMyStruct是標識符,MyStruct是變量類型(相當于(int,char等))。

?

?

    這語句實際上完成兩個操作:

      1) 定義一個新的結構類型

    struct tagMyStruct
    {  ?
     int iNum;?
     long lLength;?
    };

  分析:tagMyStruct稱為“tag”,即“標簽”,實際上是一個臨時名字,不論是否有typedefstruct 關鍵字和tagMyStruct一起,構成了這個結構類型,這個結構都存在。

  我們可以用struct tagMyStruct varName來定義變量,但要注意,使用tagMyStruct varName來定義變量是不對的,因為struct 和tagMyStruct合在一起才能表示一個結構類型。

  2) typedef為這個新的結構起了一個名字,叫MyStruct。

    typedef struct tagMyStruct MyStruct;

  因此,MyStruct實際上相當于struct tagMyStruct,我們可以使用MyStruct varName來定義變量。

  2.

    typedef struct tagMyStruct
    {?
     int iNum;
     long lLength;
    } MyStruct;

    在C中,這個申明后申請結構變量的方法有兩種:

    (1)struct tagMyStruct 變量名

    (2)MyStruct 變量名

    在c++中可以有

    (1)struct tagMyStruct 變量名

    (2)MyStruct 變量名

    (3)tagMyStruct 變量名

總結

以上是生活随笔為你收集整理的C和C++中struct和typedef struct的异同的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲69| 亚洲青青草原 | 欣赏asian国模裸体pics | 超碰97久久 | 在线观看涩涩 | 午夜免费福利小视频 | 日本成人在线播放 | 色天天干| 国产香蕉视频在线播放 | 超碰96在线| 一本色道久久综合狠狠躁的推荐 | 国产麻豆成人 | 日本不卡一区二区三区 | 亚洲av永久无码精品国产精品 | 艳妇乳肉豪妇荡乳av无码福利 | 国产91精品一区二区麻豆亚洲 | 免费在线激情视频 | 国产尤物网站 | 亚欧精品在线 | 日韩一级免费毛片 | 亚洲国产成人一区 | 久久精品人妻av一区二区三区 | 后入内射无码人妻一区 | 日本在线一区二区三区 | 人人看人人舔 | 精品日韩制服无码久久久久久 | 日韩欧美在线播放 | 蜜臀久久99精品久久久久宅男 | 日韩中文字幕2019 | www.五月天婷婷 | 精品久久久久久久 | 精品人妻一区二区三区四区在线 | 中国久久| 中国一区二区三区 | 交专区videossex非洲 | www.av网址| 欧美少妇喷水 | 国产精品黑人一区二区三区 | 午夜做爰xxxⅹ性高湖视频美国 | 久久久久国产精品一区 | 日本91在线| 欧美 中文字幕 | 美女啪啪无遮挡 | 老熟女高潮一区二区三区 | 美女毛片视频 | 国产xxxxxxxxx | 欧美久久一区二区 | 欧美在线 | 内射合集对白在线 | 欧美国产高清 | 亚洲黄色免费网站 | 午夜私人影院 | 亚洲第一自拍 | 丁香在线| 手机看片福利在线 | 男男gay同性三级 | 少妇一级视频 | 亚洲成人一区二区在线观看 | 中文字幕日韩一区 | 国产精品一区二区人妻喷水 | 国产女人18水真多毛片18精品 | 午夜黄色录像 | 亚洲123区| 在线免费福利 | 特黄一区 | 日韩在线观看视频一区二区三区 | 久久逼逼| xxx一区| 手机看黄色 | 97国产精东麻豆人妻电影 | 午夜伦理视频 | 天天看天天爽 | 色鬼综合| 久久免费国产 | 久久av一区二区三区 | 99少妇| 91亚洲一区| 国产欧美视频一区二区三区 | 韩国美女一区二区 | 亚洲第一香蕉网 | 国产亚洲欧美日韩高清 | 成人做爰66片免费看网站 | 色视频在线观看免费 | 91色精品| 91小宝寻花一区二区三区 | 亚洲人和日本人hd | 亚洲图片在线播放 | 欧美 日韩 国产 激情 | 精品一区二区三区蜜臀 | 色欲AV无码精品一区二区久久 | 国产精品自产拍高潮在线观看 | av第一页| 欧美 日韩 国产精品 | 中日韩在线观看 | 中文字幕一区二区三区手机版 | 国产精品50页 | 久久久久久久一区二区 | 国产精品自拍第一页 | 无码人妻丰满熟妇区毛片蜜桃精品 |