C 中的結構體 聯合 列舉

2021-09-27 01:25:14 字數 2606 閱讀 6547

1、c++和c語言的區別

(1)c++中的空結構體求sizeof大小為1,c中的空結構體大小為0

#include using namespace std;

//c++中的空結構體的大小為1

struct a;

struct b

};int main()

(2)c++中結構體型別名 struct 可以省略, c中結構體型別名struct不可以省略

(3)c++中結構體中可以直接宣告定義函式(成員函式),c中不可以定義函式

#include //在c語言結構體中可以宣告函式指標,但是不可以直接宣告函式

struct a;

struct b

*/};

int main()

c++結構體中的成員函式可以直接訪問結構體中的成員,但是靜態函式不可以:

#include using namespace std;

struct stu

//結構體中的靜態函式 不可以訪問結構體中的成員

static void print()

};int main();

stu t = ;

= 100;

s.show();

t.show();

s.print();

return 0;

}

多檔案實現名字空間中結構體中的成員函式

.h中:

namespace ns;

void print(stu s);

}

1、聯合只是變數在記憶體中的布局方式,本質是成員共享同一塊記憶體;

2、共用體 多個變數共用同一塊記憶體;

3、c++支援匿名聯合;

4、若聯合為全域性作用域,則必須宣告static

union;
相當於定義了兩個變數 m_i和m_c,這兩個變數共享同一塊記憶體,即&m_i == &m_c

可以直接訪問這m_i和m_c

#include using namespace std;

//聯合 共用體 成員共用同一塊記憶體

union x;

int main();

cout << &m_i << endl;

cout << &m_c << endl;

m_i = 0x61626364;

cout << m_c[0] << m_c[1] << m_c[2] << m_c[3] << endl;

return 0;

}

c++是一種強資料型別的程式語言:

enum和int是兩種不同的資料型別

不能直接用 int 型別值 直接 賦值 給 列舉型別變數

但列舉值本質上還是乙個int型別,所以可以把列舉值 或者 列舉變數賦值給int變數

例如:

enum dir;

dir d = down;

d = 1;//將int型別的數賦值給enum 會報錯

int x = down;

int y = d;

完整**如下:

#include using namespace std;

enum dir;

int main()

1、c語言中在stdbool.h 宣告了bool型別,但是c++中bool是一種基本資料型別;

2、bool型別 非"零"即真

為零的如下:

(1)false

(2) null

(3) 0

(4) 0.0

(5) 『\0』

3、cout << boolalpha << true << endl; //能夠以 true 和 false 的形式輸出 布林變數的值

#include using namespace std;

int main()

在c++中一下運算子相互等價:

&&    and

|| or

! not

%>

[ <:

] :>

& bitand

| bitor

^ xor

程式舉例:

#include using namespace std;

int main()

<%

cout << "hello world!" << endl;

int arr[10] = ;

cout << arr<:0:> << endl;

int n = 2010;

bool b = n%4==0 and n%100!=0 or n%400==0;

cout << b << endl;

int a = 10;

int c = 21;

cout << (a xor c) << endl;

return 0;

%>

結構體,列舉,聯合

結構體 1.結構體的建立 1 在構建結構體之前,必須要對結構體進行宣告。例 struct student 描述乙個學生,student為標籤 此處的分號不能丟,此處也可寫變數 2 成員訪問 2.1在 1 中的 struct student 相當於型別,比如 int型,struct student s...

結構體 聯合 列舉

一般的,在宣告乙個結構提示要使用struct關鍵字,例如 建立乙個學生 struct stu char name 20 名字 int age 年齡 char 5 性別 char id 20 學號 分號不能丟結構體得特殊宣告 沒有結構體名 structx 沒有結構體的標籤,就不能在結構體建立完成之後再...

結構體,列舉,聯合。

今天我們來學習一下結構體,列舉以及聯合等知識。一。首先從結構體開始,結構體與陣列一樣都是聚合型別。1.結構體的宣告 struct tag variable list tag 1 可以省略 2 見名思意 3 盡量不省略。member list 不能為空。variable list 可以省略。例如 描述...