(舊)子數涵數 C語言 指標

2022-08-31 01:15:07 字數 1791 閱讀 8747

一、什麼是指標?

也就是說,指標是用於指向某一記憶體單元。

簡而化之,指標便是位址

二、宣告指標

1.方法:資料型別 *名稱 初始化

2.例如:

int *p=&a //

其中int是資料型別,p是指標變數的名稱,=&a是對指標變數p的初始化

3.注意:指標宣告完一定要初始化,否則就會變成野指標(沒有指向的目標);而且指標初始化時只能指向位址,不能指向資料(在*與&中會講到)。

三、使用指標

指標也是一種變數,對於指標的使用方法和對其他變數的用法一致。

野指標和空指標不同,如果對野指標進行使用,程式將會報錯。

四、*和&

1.*:有兩個作用,一是在宣告變數是,用來標識這個變數是指標變數;二是在其他地方作用於指標時,*代表取值,即*p就取指標p所指向的值。

(*在是宣告時,作宣告符,是一種作用;在其他地方作用於指標時,做單目運算子,又是另一種作用;還有一種情況,*表示雙目運算子,即為乘積的意思,如5*5=25)

五、乙個案例看懂指標

#includeint main(void

)

六、空指標

1.作用:宣告乙個指標後,如果暫不使用,可以先給它賦值為null,避免其成為野指標。

2.方法:指標名=(資料型別*)malloc(你分配的記憶體大小)

3.例如:

int *p;

p=(int*)malloc(4);//分配動態記憶體

4.注意:malloc的資料型別要和指標的資料型別一致;

記憶體分配後,習慣上都會進行判斷是否分配成功,不成功則退出程式;

記憶體分配使用完之後一定要釋放掉,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...