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 可以省略。例如 描述...