**指標的運算分為指標的加法,指標的減法。
*首先第一類:指標的加法,寓意為指標加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...