《c語言的精華:指標》
位址形象化的稱為「指標」,即指標就是位址。
記憶體區的每乙個位元組都有乙個編號,即為「位址」。
#include
intmain()
// 執行結果:
6487580
----
----
----
----
----
----
----
----
process exited after 5.69 seconds with return value 7
請按任意鍵繼續.
..
2.1 「指標變數」和「指標」的區別
指標就是位址;
指標變數是用來存放位址的變數。
2.2 定義指標變數
// 語法:
型別名 *指標變數名;
// eg:
int*pointer_1;
2.3 給指標變數賦值
① 定義時賦值:
#include
intmain()
② 先定義後賦值
#include
intmain()
第一種好理解,但是第二種種的4、5行可能不好理解。解析如下:
(1)指標變數前面的 「*」 表示(用來說明)該變數是乙個指標變數。指標變數的名字為i_pointer,並不是所想的 *i_pointer。這裡和我們往常定義的int、float、char等型別的變數不同的。
*i_pointer:表示該指標變數i_pointer所指向的物件。
i_pointer:表示指標變數i_pointer
eg: #include
intmain()
// 結果:
1236487572
----
----
----
----
----
----
----
----
process exited after 5.05 seconds with return value 0
請按任意鍵繼續.
(2)定義指標變數時是必須指定基型別的。指定基型別的作用是告知編譯器取出的是什麼型別的資料,然後應該按照什麼樣的 儲存形式 和 儲存單元的長度 正確的去除該資料。
所以你的指標變數指向的是什麼型別的資料,該指標變數也應當是相同的資料型別。
int i =
1234
;int
*i_pointer =
&i;char i =
123;
char
*i_pointer =
&i;char str[10]
="123"
;char
*i_pointer = str;
// c語言種的字串是陣列的形式,而陣列的名稱可以表示其位址,故這裡不需要加位址符
(3)*int i;
讀作:指向int型別資料的指標變數i。注意,int *、float *、char * 是3種不同的資料型別。
(4)指標變數種只能存放位址,不能將任何的 int、float、char等型別的資料賦值給它。
2.4 兩個運算子
(1)& 取址運算子。&a表示a的位址。
(2)* 指標運算子(間接訪問符)。*p表示指標變數p所指向的物件。
C語言中精華 指標
這篇c語言指標學習經驗總結主要是我入職以來學習c指標過程中的點滴記錄。文件裡面就不重複書上說得很清楚的概念性東西,只把一些說得不清楚或理解起來比較費解的東西做一下講解,希望能達到以下三個目的 1.通過寫這些東西,把我腦袋中關於c的模糊的知識清晰化。2.給初轉c的同事們一點提示和幫助。3.也希望各位前...
C語言指標的理解
什麼是指標?指標也是一種變數,存放的是某塊記憶體的位址。我們知道,記憶體可以理解為是按位元組被分割成若干塊的,每一位元組都對應著乙個編號,並且這些編號從小到大依次排列,這個編號就是它的位址,獨一無二,而指標變數中的值就是這些編號 例如如下 的結果 include include int main 這...
C語言指標的理解
include intmain int p1 2 p2 2 p3,p4,p5 宣告2個陣列指標,和3個普通指標 p1 arr 記住p1是陣列指標,是指向陣列的 printf d n p1 0 輸出陣列裡的第乙個元素 p1 指標自增,自增按陣列單位自增,這裡看成一維陣列的話,乙個陣列單位就是3,相當於...