c語言 指標 ,指標運算,陣列指標

2021-09-25 12:24:35 字數 1078 閱讀 3480

可以看到,i1的記憶體位址與p1的值相同, 而p1的位址又是在一塊單獨的記憶體位址儲存。

而 * 就是解引用  解析並返回記憶體位址中儲存的值。

比如我們要取上面p1指向記憶體的值就用以下方法來取。

printf("取指標指向記憶體的值 p1:%d\n", *p1);

指標運算:對指標進行算術運算。

c語言中的陣列其實就是一塊連續的記憶體,這裡我們通過陣列來展示指標的運算

陣列指標

在c語言中,指標和陣列名都表示位址

1、陣列是一塊記憶體連續的資料。

2、指標是乙個指向記憶體空間的變數。

//陣列指標 陣列的指標

int array2[2][3] = , };

//陣列指標 int[3]  型別的指標

int (*array2_p2)[3] = array2;

//直接取值獲取的是陣列中第乙個元素 11

printf("array_p2值: %d\n", *array2_p2);

// 如果想取 22

printf("array_p2值: %d\n", *(*array2_p2 +1));

//如果想取55則

printf("array_p2值: %d\n", *(*(array2_p2+1) +1));

為什麼那樣獲取55呢?

//拆分

//1、 指標偏移 因為array1的型別是3個int的陣列 所以 +1 移動了12位

array2_p2+ 1

//2、獲得陣列  (*(array2_p2 + 1))[1] = 55

(*(array2_p2 + 1)

//3、對陣列執行 +/- 相當於隱式的轉為指標

//獲得 55 的位址 再解位址

*(array2_p2+ 1) + 1

這裡我們就講完指標了。

指標的算數運算

1.位元組數 char short int float double long longlong 位元組數 1 2 4 4 8 4 8 2.指標 1,計算指標 1具體加幾個位元組的方法是,給指標去掉乙個型號,讓後用sizeof 求出位元組大小 int p 整形指標變數 p 1,加4位元組 sizeo...

指標的算數運算

我們知道指標也是一種變數,既然是變數理論上便可進行算數運算,今天我們來一起 一下指標的算術運算。printf d,d n 0xa,0x0000000a int arr 10 int p arr p 10 p 大家看一下這串 思考一下這裡面的p 是加的什麼呢?這個p 意思是加乙個單元格,我們知道指標是...

指標的算數運算

指標加法 指標 1 可能出現的情況 加整個陣列 加1個位元組 加1個單元格 討論第1種情況 加整個陣列無現實意義,不可取。討論第2種情況 int arr int p arr p 10 p p 20 printf d,d n arr 0 arr 1 整形陣列乙個單元格佔四個位元組,將10轉化成十六進製...