讓人噁心的指標

2021-09-11 12:00:18 字數 1456 閱讀 7239

**指標的運算分為指標的加法,指標的減法。

*首先第一類:指標的加法,寓意為指標加1

我們假設了三種情況:

(1)加乙個單元格;

(2)加乙個位元組;

(3)加整個陣列

在這之前,我們擁有這樣一段**:

**int *p=arr;

p=10;

p++;

p=20;

printf("%d %d\n",arr[0],arr[1]);

首先,我們討論第二中情況,

我們用畫圖的形式,給出陣列arr的內容和位址。

在給出的一段**中:

*p=10;

p++;

*p=20;

所以位址為100的內容是10,10的十六進製制為oxa.20的十進位制為0x14

如果是加乙個位元組,p++之後的位址為101,*p=20的位址為101.

因此,該程式的執行結果是arr[0]=0x140a=5130,arr[1]=0;

其次我們為您來討論第一種情況:加乙個單元格。

在此圖中我們可以看出加乙個單元格,*p=20的位址為104.

最後我們來討論最後一種情況:加整個陣列。顯然這種情況是不符合實際的情況的。

總結:(1)指標與指標相加只能是乙個乙個單元格相加,因為如果乙個乙個位元組相加,運算比較麻煩,所以我們排除了這個情況。

(2)指標+i :加i個單元格,就等於加iseizof(指標去掉乙個)個位元組。

例如int main()

;//x

int *p = &arr[1];//x+4

int *q = &arr[9];//x+36

printf("%d\n",p-q);//-8

printf("%d\n",q-p);//8

printf("%d\n",(char ***)q-(char ***)p);//8

printf("%d\n",(short *)q-(short *)p);//16

printf("%d\n",(double *)q-(double *)p);//4

printf("%d\n",(char *)q-(char *)p);//32

printf("%d\n",(long )q-(long)p);//32

return 0;
指標-i :減i個單元格,就等於減iseizof(指標去掉乙個*)個位元組。*

int main()

**

噁心的問題

在vs2008中,建立乙個htm頁面,寫入很簡單的一些html 看看效果 方式一 在vs編輯器中點選右鍵,選擇 view in brower 此時url位址列是http localhost 31538 desktop htmlpage1.htm 方式二 直接雙擊硬碟上該html檔案,此時url位址列...

重構,讓人快樂讓人苦

重構,是編寫 必須要面對的一項操作,同時也應該是程式設計師樂於實踐的一項內容。不論是邏輯實現還是設計過程,乃至整個分層結構,我們都可能面臨並且實施重構。這篇文章不會告訴您什麼是重構,如何去優美的重構等等的理論,只想和大家分享一些感受,並且 一些問題。最近的兩周,我一直對我們團隊的乙個子業務框架做重構...

噁心的電信廣告

最近廣東電信在不斷除錯它們的彈出廣告 迷你首頁 訪問乙個網頁時,有時會彈出廣告視窗,今天居然直接在網頁中間顯示一它的廣告,氣憤啊!例如,我訪問了 得到的是下面截圖的效果 檢視一下源 居然是這樣的 width 100 height 100 frameborder 0 x frameborder 0 i...