作業3

用指針處理鏈表這是屬於算法上的內容,會有專門的課程:數據結構、算法技巧與分析,算法的特點就是比較抽象,個人感覺,要學會善於畫圖和上機實踐,當然,你最好得有紮實的語法基礎,這樣做起來纔不會吃力。算法在程序設計當中是駕馭在語言之上,是整個程序的靈魂,要學會實在不容易。總之,1、多畫圖能夠化抽象爲簡單;2、多上機實踐能夠加深對抽象的理解;3、擁有紮實的語法基礎能夠讓你更容易上手。




指針其實是一個整形變量,與其它數據不同的是,它的作用是用來存儲其它變量的地址,比如說
int a;
int *p = &a;
這裏面,a是普通的整形變量,p則是指針,用來存儲變量a的地址,
這樣做的話,就可以很容易的找到變量a所在的位置,從而得到a的值



1:指針是一個地址,指向的是個類型:

我們知道,c語言中的類型有int,char,bool(這個不常用),一般我們使用int,char就可以滿足一般的類型需求的,如果對於變量的長度過大,就是用long ,float,double,關於各個類型使用的的長度問題,可以使用sizeof(int)或者sizeof(long)來查看各個類型,在系統中的小。

而指針就是一個8個字節(64系統)。


exp_loading.gif


2:指針指向的是地址,地址指向的是內容:

我們需要一個變量,來存儲地址,這個變量的值是地址,但是我們可以通過修改變量的值,來不斷的改變地址,但是,我們如果需要改變該個地址的值的話,就需要,對地址的值進行修改,而不改變地址。


int a = 10;

int *p ;

p = &a;


*p =11;


a=?

這裏我們看到,p 是一個變量,我們使用p來存儲變量a的地址,這是,我們使用*p對於這個變量進行賦值,那麼a的值最後,是多少呢,結果是11,因爲我們使用*p賦值,就相當於a=11,賦值效果一樣的。


3:指針的指針,是面對於指針的變量:

我們說,指針的指針的時候,就有點不清楚了,到底怎麼區分指針和指針的指針呢。


char *p;

char **pr;

pr = &p;


我們這樣看就清楚了一點,char *(*pr); *pr是一個存儲的值爲指針的變量,pr就是存儲上個變量地址的變量。整合起來就是,pr是一個存儲的值爲指針的地址的變量。


這樣,我們就基本,對於指針有一個直接的瞭解了。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章