深入淺出之構造型別

2021-10-02 09:21:00 字數 2894 閱讀 2484

構造型別也稱為組合型別,是由基本型別按照一定規律組合而成。

陣列是由同型別陣列組合而成的序列,用乙個統一的陣列名來標識這一組資料。

一維陣列:型別識別符號 陣列名[常量表示式];

二維陣列:型別識別符號 陣列名[常量表示式][常量表示式];

三維陣列:型別識別符號 陣列名[常量表示式][常量表示式][常量表示式];

1) 定義陣列的同時可以直接給陣列中的元素賦初值,將需要賦的值一一枚舉並用一對大括號括起來,然後用逗號分隔即可。

如:

int array[5]=;
2) 只給陣列中的部分元素賦初值;

int array[5]=;
其餘元素值均為0

3)如果初始化陣列時,全部給出,可以不指定陣列長度

int array=;
方式1:下標法格式:陣列名[下標]

方式2:位址法

格式:*(陣列名+下標)

#define g(x) (x)*(x)

#define h(x) ((x)*(x))

int main(int argc, char *ar**)

; qdebug("%d",array[3]);

qdebug("%d",*(array+3));

int *p = array;

qdebug("%d",*(p+3));

int *pp = &array[3];

qdebug("%d",*pp);

return a.exec();

}輸出結果:44

44字串是若干個有效字元(字母、數字、專用字元、轉義字元等)的序列。c語言中沒有字串變數,字串不是存放在乙個變數中,而是存放在乙個字元型陣列中。因此,為了存放字串,常常在程式中定義字元型陣列。

字串與字元陣列兩個術語在含義上有區別,字串存放在字元陣列中,但字元陣列與字串可以不等長,字串以「\0」作為結束標誌。

字元陣列的賦初值

1) 逐個為元素值賦初值

char str[2]=;

2)   對字元陣列指定乙個字串初值

char str=;

注意:單個字元是用單括號括起來,而字串是用雙括號括起來,在指定字串賦初值時,將字串中各個字元逐個賦給字元陣列中各個元素,但要注意一點是系統會自動地在最後乙個字元後面加入乙個『\0』字元。

格式:struct 結構體名變數名表列;

如:struct person student,worker;

3)直接定義結構體型別變數;

如:structstudent,worker;

注意:此方式無法定義其他結構體型別變數;

在初始化時,按照定義的結構體型別的資料結構,依次寫出各初始值,依次寫出各初值。

struct person student=;

引用方法:結構體變數.成員名

如:student.name

注意:c語言不允許把乙個結構體作為乙個整體進行輸入與輸出。

陣列只能按序組織多個同型別的資料,結構體可以組織多個不同型別的資料。

共用體資料型別是指將不同的資料項存放於同一段記憶體單元的一種構造資料型別。

定義格式:

union 共用體名變數表項;

共用體型別很相似,與結構體型別區別是共用體變數中的各個成員共用記憶體中同一段變數空間。

注意:乙個共用體變數不能同時存放多個成員變數的值,而只能存放其中乙個值,這就是最後賦予它的值。

#define f(x) x*x

#define g(x) (x)*(x)

#define h(x) ((x)*(x))

union exam x;

int main(int argc, char *ar**)

輸出結果是:

1089470529,7.50,a

1089470529,7.50,a

4,4

union結構體內存情況:

—— —— —— —— a

—— —— —— —— b

——                          c

列舉型別,是指這種型別的變數的值只能是指定的若干個名字之一。

red,

yellow,

blue,

white,

black

};int main(int argc, char *ar**)

輸出結果是:4

1) enum是關鍵字,標識列舉型別,定義列舉型別必須用enum開頭;

2)在定義列舉型別時,花括號中一些名字是程式設計者自己定義,命名規則與識別符號相同;

3)它的值是一些整數,如果沒有特殊定義,系統會自動預設從0開始,0,1,2,3...

4)可以在定義型別時對列舉變數進行初始化

enum color_name;
5)列舉常量可以進行比較

if (color == red)

qdebug("red");

6) 乙個列舉變數的值只能是定義的幾個列舉常量之一,可以將列舉常量賦給列舉變數;

color = red;(正確)

color = 0;(錯誤)

7) 列舉常量不是字串,不能用下面方法輸出字串「red」;

qdebug("%s",red);
可通過

qdebug("red");
詳見《深入淺出之檔案》

深入淺出Javascript 型別

js有6種原型資料型別 null,undefined,boolean,number,string,symbol var as null undefined console.log as nullnull.asd uncaught typeerror cannot read property asd ...

深入淺出之STL

c stl 標準模板庫 是一套功能強大的 c 模板類,提供了通用的模板類和函式,這些模板類和函式可以實現多種流行和常用的演算法和資料結構,如向量 鍊錶 佇列 棧。c 標準模板庫的核心包括以下三個元件 元件描述 容器 containers 容器是用來管理某一類物件的集合。c 提供了各種不同型別的容器,...

js深入淺出 型別轉換

隱式轉換 1.是賦值 2.嚴格模式 先判斷型別,再判斷值 console.log 123 123 false console.log null undefined false console.log undefined undefined true 3.如圖 2.一邊是數值,一邊是字串,字串會轉數值...