關於指標,我對初學C語言的同窗們真的有話要說!2

2021-09-27 12:20:13 字數 772 閱讀 2237

昨天,我大膽地從不知道是什麼角度,泛泛地把指標的一些問題談了起來。

今天,我們還是繼續再談談吧!

在c中如果要說指標的話,其實更確切的說應該是定義的指標變數, 那麼對應起來就是指標的常量,這兩者之間說起來還是挺好區分的。我們知道變數一定是分配儲存空間的,而常量是本來就存在的,那麼本質的區別在**呢?

還是拿個具體的例子來說一下吧

如果我們int a;定義了乙個整型變數發生了什麼呢,有同窗就說了真有什麼了不起,不久是乙個整型變數嗎,其實這裡面還真有點大家都不注意的門道啊!

第一:這樣一條語句如果是放在區域性和放在全域性是不同的,有什麼不同呢?若是放在區域性就會在程式的棧區域中申請4個位元組的儲存空間,但是前提是函式被呼叫時才分配,如果不呼叫就不會分配,可是全域性的據說是在靜態區域內分配儲存空間,當然,我我個人認為,在棧也無所謂,如果程式不終止,則棧中預留的空間則不會被銷毀。

第二既然分配了空間,那麼它就會有乙個位址,也就是我們通常用的&a,這就是a變數在記憶體中虛擬位址,那麼這個位址就是相對固定的,所以&a即可稱之為乙個位址的常量。

第三這個位址開始的向高處的連續的四個單元給了a,因此上a = 5;就是從對&a處開始連續的四個位元組賦值5,本意就是第乙個位元組5,第二個位元組,三個位元組,四個位元組可不能閒著也要,清空為0;這樣才算是定義了乙個變數

第四如果這是我們又定義了乙個int* p;就是又分配了乙個指標的儲存空間,它將要指向乙個整型的變數,&p是這個整型指標變數的位址,而p本身是乙個指向整型資料的指標變數,也就是說從&p開始向高處四個單元,這四個單元都是未被初試化,是一些隨機的數值,也就是我們通常稱為的野指標。

關於指標,我對初學C語言的同窗們真的有話要說!3

這一偏距離上次說指標,時間是有點長了,主要是這幾天上班有點累。好了,今天恢復了一下,讓我們將繼續侃吧!上一次我們提到了一般的變數,同時也說了指標變數。這樣的話我們應該認識到這兩種變數有什麼異同了吧。什麼什麼,您還在迷糊,沒關係,讓我再來說一遍。我們說定義了乙個變數實際上是分配的一定位元組的儲存空間,...

關於C語言的指標

一級指標 指標是什麼?在電腦科學中,指標 pointer 是程式語言中的乙個物件,利用位址,它的值直接指向 points to 存在電腦儲存器中另乙個地方的值。由於通過位址能找到所需的變數單元,可以說,位址指向該變數單元。因此,將位址形象化的稱為 指標 意思是通過它能找到以它為位址的記憶體單元 指標...

關於C語言的指標

c語言指標 今天學習了指標,講講我對它的認識。這是乙個指標 int i int p scanf d i p i i是乙個整型變數,p是乙個指標,輸入時賦值給i,p是i的位址。就好比,i是房子的名字,p是房子的位址,輸入的值是放在房子裡的東西。符號 是取位址的意思,在這裡是對i取位址。定義指標的時候,...