一、什麼是指標?
也就是說,指標是用於指向某一記憶體單元。
簡而化之,指標便是位址。
二、宣告指標
1.方法:資料型別 *名稱 初始化
2.例如:
int *p=&a //3.注意:指標宣告完一定要初始化,否則就會變成野指標(沒有指向的目標);而且指標初始化時只能指向位址,不能指向資料(在*與&中會講到)。其中int是資料型別,p是指標變數的名稱,=&a是對指標變數p的初始化
三、使用指標
指標也是一種變數,對於指標的使用方法和對其他變數的用法一致。
野指標和空指標不同,如果對野指標進行使用,程式將會報錯。
四、*和&
1.*:有兩個作用,一是在宣告變數是,用來標識這個變數是指標變數;二是在其他地方作用於指標時,*代表取值,即*p就取指標p所指向的值。
(*在是宣告時,作宣告符,是一種作用;在其他地方作用於指標時,做單目運算子,又是另一種作用;還有一種情況,*表示雙目運算子,即為乘積的意思,如5*5=25)
五、乙個案例看懂指標
#includeint main(void六、空指標)
1.作用:宣告乙個指標後,如果暫不使用,可以先給它賦值為null,避免其成為野指標。
2.方法:指標名=(資料型別*)malloc(你分配的記憶體大小)
3.例如:
int *p;4.注意:malloc的資料型別要和指標的資料型別一致;p=(int*)malloc(4);//分配動態記憶體
記憶體分配後,習慣上都會進行判斷是否分配成功,不成功則退出程式;
記憶體分配使用完之後一定要釋放掉,free是釋放函式,所以malloc和free必須是成對出現的。
5.案例:
#include#include七、雙級指標//malloc函式和free函式儲存在stdiib.h這個函式庫裡
int main(void
) *p=100
; printf(
"p指標中的內容=%d\n
",*p);
free(p);//
記憶體釋放
return0;
}
雙級指標就是指向指標的指標,即:
int*p1=&a; //例如:指標p1指向a的位址
int*p2=p1; //
指標p2指向p1
#includeint main(void八、番外)
注意看上乙個案例,如果我們把p=(int*)malloc(4)改為2,就會報錯,如下圖(這被稱為記憶體越界)。
這是為什麼呢,這就關乎到資料長度的問題了,因為在vc6.0出生時,系統和cpu發展到32位,所以vc6.0是32位的編譯器,在vc6.0中,int的資料長度為32/8=4位元組;
而tc2.0出生時,系統和cpu還停留在16位,所以tc2.0是16位的編譯器,在tc2.0中,int的資料長度為16/8=2位元組。
(舊)子數涵數 C語言 讓C幫你做計算
之前,我們學過了我們的第乙個c程式 hello world。現在開始進一步學習,想一想如何讓c幫你做計算。我們先來看 我沒有新建,還是用之前的hello world.cpp 好,因為之前在hello world的時候就已經學過了c的基本框架,所以之前講過的內容就不重複了。然後讓我們看下注釋 1.第四...
(舊)子數涵數 VB DLL動態鏈結庫
一 定義 dll是dynamic link library的縮寫,意為動態鏈結庫。在windows中,許多應用程式並不是乙個完整的可執行檔案,它們被分割成一些相對獨立的動態鏈結庫,即dll檔案,放置於系統中。當我們執行某乙個程式時,相應的dll檔案就會被呼叫。乙個應用程式可有多個dll檔案,乙個dl...
(舊)子數涵數 Flash 影片剪輯的事件操作
一 綜述 1.概念 影片剪輯的事件操作,就是onclipevent命令,就如同在按鈕上使用的on命令。2.方法 onclipenvent 引數 3.引數 onclipenvent有許多的引數,常用的有以下幾種,如下圖。二 具體使用 影片剪輯的事件命令一定要寫在影片剪輯上 1.load呼叫時 oncl...