數據結構預備知識
一、指針:
概念:指針就是一個地址,地址就是指針
指針變量是存放內存單元地址的變量
指針的本質是一個操作受限的非負整數
範圍:0-FFFFFF
例子:
int *p;
int i = 10;
int j;
p = &i;
j = *p
(p存放i的地址,×p就是i的本身)
二、結構體:
1、如何定義一個結構體:
在main函數之前定義
struct + 結構體名稱
{成員類型+成員名稱;
成員類型+成員名稱;
成員類型+成員名稱;
}
注意:結構體只是一個人爲定義的一個數據結構類型,需要自行定義變量名稱
2、結構體的使用方法:
struct Student st = {1000,"zhangsan",20}
(此方法很少用,因爲不可能定義很多變量的名字)
struct Student ×pst = &st;
(定義了一個指針變量,名字叫pst存放的是struct Student變量的地址,總共就佔4個字節的內存。存放
第一個字節的地址)
1.
st.sid
2.
pst -> sid
pst所指向結構體中sid這個成員
注意事項:
結構體變量不能加減乘除,但可以互相賦值
動態函數分配:
malloc函數值能返回第一個字節的地址,然而並沒有什麼卵用,爲了確定malloc函數所分配的地址到底是什麼類型的,我們在malloc函數前進行強制類型轉換。
即:int × pArr = (int*) malloc (sizeof (int) * len);