程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言--結構體,c語言--

C語言--結構體,c語言--

編輯:關於C語言

C語言--結構體,c語言--


一、結構體

1.結構體變量的定義

 * 結構體可以由多個不同類型的數據構成

 * struct Person {int age; double height; char *name}; //先定義結構體類型,該結構體  有三個成員或者屬性

 * struct Person p = {18, 1.80, "jack"}; //再根據結構體類型定義變量,並進行初始化

2.結構體變量屬性的賦值

 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" };

3.結構體內存分析

 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個字節。因為當結構體變  量是不同類型的數據時,存儲空間為最大類型數據字節的倍數

4.結構體變量的多種定義方式

 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;//缺點:不能重復定義變量

5.結構體作用域

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

 * 可以對比全局變量和局部變量,進行定義和使用

6.結構體數組

 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"}};

7.指向結構體的指針

 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; //利用指針箭頭

8.結構體嵌套

 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.基本數據類型

 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

2.構造類型

 1>數組:只能存儲同一種類型的數據

  定義:數據類型 數組名[元素個數]

 2>結構體:可以由多個不同的類型數據組成

  定義:先定義類型 再利用類型定義變量

3.指針類型

 1> 變量的定義:int *p;

 2> 間接操作變量的值,int a = 10;int *p;p = &a;*p = 20;

4.枚舉類型

 1> 使用場合:當一個變量的取值,只有幾個固定取值時

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved