關於C語言指標的筆記

2021-09-10 07:30:30 字數 1092 閱讀 4369

指標這一塊一直都暈暈乎乎的。今天稍微搞懂了點,做個總結。

指標裡放的是乙個位址,這個位址是指向某個東西,他可以一直變,也就是說他指向的東西可以一直變

指標初始化時,「=」的右運算元必須為記憶體中資料的位址,不能夠是變數,也不能夠直接用整型位址值(可是int*p=0;除外,該語句表示指標為空)。

當討論賦值的問題時,「=」的左運算元能夠是*p,也能夠是p。

當「=」的左運算元是*p時,改變的是p所指向的位址存放的資料,也就是改變的是指標所指記憶體的東西

當「=」的左運算元是p時,改變的是p所指向的位址,也就是p的指向的東西。

第一種情況就是常說的「使用指標做引數來改變主調函式中的變數「這個例子

*p=1就是將p指向的記憶體修改為1

第二種情況可以看這個**

#include int main()

執行結果:

下來要說乙個指標傳參的這個問題

在前面那個使用指標做引數來改變主調函式中的變數那個例子中,最後的結果好像是指標傳參並沒有發生拷貝的現象,但其實不然。看下面這個例子

以前一直以為,在test1裡將c的位址賦給了a,在test裡的a就會改變,但其實test裡的指標a的值沒有變。

這說明這裡作為引數傳遞的指標也是原指標變數的拷貝,在上面那段**中的test1裡的內容並沒有修改test中的指標變數a。這個要和之前使用指標做引數來改變主調函式中的變數區分。

所以指標傳參仍然是拷貝,改變不了原指標指向的東西。通過*p=1,也只能修改指標指向那塊記憶體的東西,但是位址仍然不變。

想要讓改變指標a的值,也就是改變a指向的東西,有乙個辦法就是 使用指標的引用 即int*& a 這樣的引數

C語言 關於指標總結筆記

脆弱的人才會四處遊說自己的不幸,堅強的人只會不動聲色地成長。一 指標說明 指標是包含另一變數的位址變數。1 int p p是乙個指標,指向整型數。2 int p p是乙個函式,該函式返回乙個指向整型的指標。3 int p p是乙個指標,該指標指向乙個函式,這個函式返回乙個整數。4 int p p是乙...

關於C語言的指標

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

關於C語言的指標

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