1. 程式人生 > >C++結構體、聯合、列舉與C語言中的區別

C++結構體、聯合、列舉與C語言中的區別

1.結構體的不同

(1)使用結構體型別定義結構體變數、指標時,可以省略struct關鍵字。

(2)C++中的結構體中可以定義函式,C語言不能。C++結構體中的函式成為成員函式。

    結構體內部的函式可以直接訪問結構體中的變數

        C++中的結構體和類基本相同,struct不被淘汰的原因主要是:相容C語言的語法以及為了照顧從程式設計師的習慣 。

2.聯合的不同

(1)使用union型別定義結構體變數、指標時,可以省略union關鍵字。

(2)支援匿名聯合,例:

        union
        {
              int x ;
              char buf[4] ;
        } ;(聯合中不允許初始化)

      聯合在C++中本質就是藉助聯合的語法特性,將兩個毫不相干的區域性變數關聯起來而已。

3.列舉的不同

(1)使用列舉型別定義結構體變數、指標時,可以省略enum關鍵字。

(2)C++中的列舉型別是一種獨立的資料型別,不能用整型資料進行賦值操作。C語言中的列舉型別本質上是整型。