* 結構體可以由多個不同型別的資料構成
* 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 定義結構體變數...