* 結構體可以由多個不同類型的數據構成
* struct Person {int age; double height; char *name}; //先定義結構體類型,該結構體 有三個成員或者屬性
* struct Person p = {18, 1.80, "jack"}; //再根據結構體類型定義變量,並進行初始化
1>變量屬性賦值1
struct Person p = {18, 1.80, "jack"};
//屬性的修改
p.age = 20;
p.height = 1.78;
p.name = "rose";
p = {19, 1.77, "jame"};// 錯誤賦值方式,只能在定義變量是進行初始化
2> 結構體變量賦值2
struct Person p2 = {.age =19 ; .height =176 ; .name ="tom" };
1> struct Date {int year ;int month; int day} ;//本行代碼只是定義了一個結構體類型,並 未分配存儲空間
2> struct Date d1 = {2011,4,10};//定義結構體變量(真正分配存儲空間),結構體變量的存 儲空間就是它所有變量的和--12個字節,可以用sizeof(d)檢測
3> struct Student {int age; char *name};
struct Student stu = {18, "jary"};// 此時結構體變量占用16個字節。因為當結構體變 量是不同類型的數據時,存儲空間為最大類型數據字節的倍數
1> struct Person {int age; double height; char *name};
struct Person p = {18, 1.80, "jack"};
2> struct Person {int age; double height; char *name} p1;//定義結構體的同時定義了 變量
struct Person {int age; double height; char *name} p2;//錯誤寫法,結構體類型重 復定義
3> struct {int age; double height; char *name} p3;//缺點:不能重復定義變量
* 結構體類型也有作用域,從定義類型的那一行開始,一直到代碼塊結束
* 可以對比全局變量和局部變量,進行定義和使用
1>結構體數組定義
struct Person {int age; double height; char *name};
struct Person names[3] = { {18, 1.80, "jack"}, {18, 1.80, "jame"}, {18, 1.80, "tom"}};
1> 指針的定義
struct Person {int age; double height; char *name};//定義類型
struct Person p1 = {18, 1.80, "jack"};//定義結構體變量
struct Person *p; //定義了struct Person類型的指針
p = &p1;//指針變量p指向了p1變量
2> 訪問結構體變量屬性的方式
① p1.age; p1.height;p1.name; //利用變量名直接訪問
② (*p).age; (*p).height; (*p).name; //利用指針訪問
③ p->age; p->height; p->name; //利用指針箭頭
1> struct Date {int year ;int month; int day};
struct Student {int age; double height; struct Date birthday};//結構體嵌套定義
struct Student stu = {18,188,{1996,9,9}};
1> int
①long int、long:8個字節 %ld
②short int、short:2個字節 %d、 %i
③unsigned int、unsigned:4個字節%d、%i
④signed int、signed:4個字節%d、%i
2> float/double
①float:4個字節 %f
②double:8個字節 %f
3>char
①1個字節 %c、%d
②char類型保存在內存中的是它的ASCII值;'A'-->65
1>數組:只能存儲同一種類型的數據
定義:數據類型 數組名[元素個數]
2>結構體:可以由多個不同的類型數據組成
定義:先定義類型 再利用類型定義變量
1> 變量的定義:int *p;
2> 間接操作變量的值,int a = 10;int *p;p = &a;*p = 20;
1> 使用場合:當一個變量的取值,只有幾個固定取值時