a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C++ > 正文

C++教程:C++指針的操作和運算

2020-05-23 14:27:14
字體:
來源:轉載
供稿:網友
既然指針是一種數據類型,那么它也應該有對應的操作或運算,正如整數能做加減乘除一樣。但是每一種操作或運算都應該對這種數據類型有意義。比如兩個實數可以用關系運算得知哪個大哪個小,而兩個虛數卻不能使用關系運算,因為比較虛數的大小是沒有意義的。

對于指針類型來說,可以使用的運算有:和整數做加法運算、和整數做減法運算、兩指針做關系運算。很顯然,指針類型的乘除法是沒有意義的,也是不允許的。

指針的加減運算

指針的加減法和數的加減法是不同的。我們認為,指針只能夠和整數做加減法運算(包括和整型常量、變量做加減法和自增自減)。其實這也不難理解,內存的存儲空間是按“個”計算的,不會出現半個存儲空間的情況。那么,指針的加減法是否在地址值上做加減呢?我們先寫一段程序來驗證一下指針加減法的運算結果:(程序8.3)
C++教程:C++指針的操作和運算#include "iostream.h"
int main()
{
   int a[5]={1,2,3,4,5};
   int *aptr=&a[0];//把數組首元素的地址給指針
   int i=1;
   for (int j=0;j<5;j++)
   {
      cout <<'(' <<aptr <<")=" <<*aptr <<endl;//輸出指針內存儲的地址和該地址的數據
      aptr=aptr+i;//指針和整型變量做加法
   }
   return 0;
}

運行結果:
(0x0012FF6C)=1
(0x0012FF70)=2
(0x0012FF74)=3
(0x0012FF78)=4
(0x0012FF7C)=5

我們發現,每次做了加法以后,地址值并不是相差1,而是相差了4。所以指針和整數做加法并不是簡單地將地址值和整數相加。我們又發現,每次做了加法以后,能夠輸出原先指針所指的下一個元素。根據數組在內存中的存儲情況我們不難得出這樣一個結論:指針和整數C的加減法是指針向前或向后移動C個對應類型的存儲區域,即可以得到以下公式:
    新地址=舊地址±C*每個對應數據類型的變量在內存中所占字節數

因為每個int變量在內存中所占字節數為4,所以在程序8.3.1中每做完一次加法,新地址=舊地址+1*4=舊地址+4。如右上圖8.3所示。

指針的關系運算

在第四章中,我們知道關系運算有等于、大于、小于、大于等于、小于等于和不等于六種。對于指針來說,等于和不等于就是判斷兩個指針的值是否相同或不同,即兩個指針是否指向了相同或不同的地方。而大于和小于是判斷指針的值哪個大哪個小。值較小的在存儲器中的位置比較靠前,值較大的在存儲器中的位置比較靠后。

指針的關系運算在數據結構中會經常用到。我們在下一章介紹鏈表的時候會著重介紹它的用法。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产伦精品一区二区三区四区视频 | 国产精品2区 | 成人在线免费网站 | 久久综合狠狠综合久久综合88 | 久久国产黄色片 | 国产91亚洲精品 | 亚洲伦理 | 成人午夜影院 | 久久e久久 | 国产精品久久久久久婷婷天堂 | 黄色资源在线观看 | heyzo在线观看 | 精品一区免费 | 日韩精品免费一区二区三区 | 成人国产精品免费观看 | 日本在线观看不卡 | 东北一级毛片 | 黄色网址视频在线观看 | 伊人超碰 | 亚洲 国产 另类 精品 专区 | 午夜视频在线观看免费视频 | 国产综合久久久久久鬼色 | 日本日韩中文字幕 | 天天综合网91| 国产精品久久久久久 | 精品96久久久久久中文字幕无 | 综合网亚洲 | 欧美在线免费观看 | 久久中文字幕一区 | 亚洲视频一区 | 色噜噜视频 | 欧美午夜视频 | 久久免费精品视频 | 久久精品性 | 久久精品国产一区二区电影 | 国产精品久久久久高潮色老头 | 黄色影院免费看 | 国产精品女人视频 | 亚洲精品久久久 | 99精品在线观看 | 一区二区国产精品 |