C語言 結構體

2022-09-14 06:42:08 字數 1866 閱讀 8121

* 結構體可以由多個不同型別的資料構成

* struct person ; //先定義結構體型別,該結構體有三個成員或者屬性

* struct person p = ; //再根據結構體型別定義變數,並進行初始化

1>變數屬性賦值1

struct person p = ;

//屬性的修改

p.age = 20;

p.height = 1.78;

p.name = "rose";

p = ;// 錯誤賦值方式,只能在定義變數是進行初始化

2> 結構體變數賦值2

struct person p2 = ;

1> struct date ;//本行**只是定義了乙個結構體型別,並未分配儲存空間

2> struct date d1 = ;//定義結構體變數(真正分配儲存空間),結構體變數的儲存空間就是它所有變數的和(只限於結構體內所有變數型別相同的情況)--12個位元組,可以用sizeof(d)檢測

3> struct student ;

struct  student stu = ;// 此時結構體變數占用16個位元組。因為當結構體變數是不同型別的資料時,儲存空間為最大型別資料位元組的倍數

1> struct person ;

struct person p = ;

2> struct person p1;//定義結構體的同時定義了變數

struct person p2;//錯誤寫法,結構體型別重複定義

3> struct p3;//缺點:不能重複定義變數

* 結構體型別也有作用域,從定義型別的那一行開始,一直到**塊結束

* 可以對比全域性變數和區域性變數,進行定義和使用

1>結構體陣列定義

struct person ;

struct person names[3] = ,  ,  };

1> 指標的定義

struct person ;//定義型別

struct person p1 = ;//定義結構體變數

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 ;

struct student ;//結構體巢狀定義

struct student stu = };

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> 使用場合:當乙個變數的取值,只有幾個固定取值時

C語言結構體

1.1.1 結構概念 1 結構存在的意義 存在是合理的,許多事物的存在是在不斷解決問題引入的,當然有更好的方法出現時改變也是合理的。在實際問題中,一組資料往往具有不同的資料型別。例如,在學生登記表中,姓名應為字元型,學號可為整型或字元型,年齡應為整型,性別應為字元型,成績可為整型或實型。顯然不能用乙...

C語言 結構體

宣告乙個結構體型別 struct 結構體名 成員表列 定義結構體變數的方法 1 先宣告結構體型別再定義變數名。在定義了結構體變數後,系統會為之分配記憶體單元.例如 struct student student1,student2 2 在宣告型別的同時定義變數,例如 struct 結構體名 成員表列 ...

c語言 結構體

1 定義結構體 c語言允許使用者自己建立不同型別資料組成的組合型的資料結構 struct 結構體名 1 結構體的型別不是只有一種,可以根據需要設計許多種,如struct student struct worker等 2 結構體的成員可以是另一結構體的成員,注意的是引用此成員的方式 2 定義結構體變數...