人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

C語言入門者基礎(chǔ)講座 第11講 指針的慨念(2)

C語言入門者基礎(chǔ)講座 第11講 指針的慨念(2)

更新時(shí)間:2022-07-15 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

2)加減算術(shù)運(yùn)算

  對(duì)于指向數(shù)組的指針變量,可以加上或減去一個(gè)整數(shù)n。設(shè)pa是指向數(shù)組a的指針變量,則pa+n,pa-n,pa++,++pa,pa--,--pa 運(yùn)算都是合法的。指針變量加或減一個(gè)整數(shù)n的意義是把指針指向的當(dāng)前位置(指向某數(shù)組元素)向前或向后移動(dòng)n個(gè)位置。應(yīng)該注意,數(shù)組指針變量向前或向后移動(dòng)一個(gè)位置和地址加1或減1 在概念上是不同的。因?yàn)閿?shù)組可以有不同的類型, 各種類型的數(shù)組元素所占的字節(jié)長(zhǎng)度是不同的。如指針變量加1,即向后移動(dòng)1 個(gè)位置表示指針變量指向下一個(gè)數(shù)據(jù)元素的首地址。而不是在原地址基礎(chǔ)上加1。

  例如:

  int a[5],*pa;
  pa=a; /*pa指向數(shù)組a,也是指向a[0]*/
  pa=pa+2; /*pa指向a[2],即pa的值為&pa[2]*/ 指針變量的加減運(yùn)算只能對(duì)數(shù)組指針變量進(jìn)行, 對(duì)指向其它類型變量的指針變量作加減運(yùn)算是毫無意義的。(3)兩個(gè)指針變量之間的運(yùn)算只有指向同一數(shù)組的兩個(gè)指針變量之間才能進(jìn)行運(yùn)算, 否則運(yùn)算毫無意義。

  ①兩指針變量相減

  兩指針變量相減所得之差是兩個(gè)指針?biāo)笖?shù)組元素之間相差的元素個(gè)數(shù)。實(shí)際上是兩個(gè)指針值(地址) 相減之差再除以該數(shù)組元素的長(zhǎng)度(字節(jié)數(shù))。例如pf1和pf2 是指向同一浮點(diǎn)數(shù)組的兩個(gè)指針變量,設(shè)pf1的值為2010H,pf2的值為2000H,而浮點(diǎn)數(shù)組每個(gè)元素占4個(gè)字節(jié),所以pf1-pf2的結(jié)果為(2000H-2010H)/4=4,表示pf1和 pf2之間相差4個(gè)元素。兩個(gè)指針變量不能進(jìn)行加法運(yùn)算。 例如, pf1+pf2是什么意思呢?毫無實(shí)際意義。

  ②兩指針變量進(jìn)行關(guān)系運(yùn)算

  指向同一數(shù)組的兩指針變量進(jìn)行關(guān)系運(yùn)算可表示它們所指數(shù)組元素之間的關(guān)系。例如:

  pf1==pf2表示pf1和pf2指向同一數(shù)組元素
  pf1>pf2表示pf1處于高地址位置
  pf1
  main(){
  int a=10,b=20,s,t,*pa,*pb;
  pa=&a;
  pb=&b;
  s=*pa+*pb;
  t=*pa**pb;
  printf("a=%d\nb=%d\na+b=%d\na*b=%d\n",a,b,a+b,a*b);
  printf("s=%d\nt=%d\n",s,t);
  }
  ......

  說明pa,pb為整型指針變量

  給指針變量pa賦值,pa指向變量a。

  給指針變量pb賦值,pb指向變量b。

  本行的意義是求a+b之和,(*pa就是a,*pb就是b)。

  本行是求a*b之積。

  輸出結(jié)果。

  輸出結(jié)果。

  ......

  指針變量還可以與0比較。設(shè)p為指針變量,則p==0表明p是空指針,它不指向任何變量;p!=0表示p不是空指針。空指針是由對(duì)指針變量賦予0值而得到的。例如: #define NULL 0 int *p=NULL; 對(duì)指針變量賦0值和不賦值是不同的。指針變量未賦值時(shí),可以是任意值,是不能使用的。否則將造成意外錯(cuò)誤。而指針變量賦0值后,則可以使用,只是它不指向具體的變量而已。

  main(){
  int a,b,c,*pmax,*pmin;
  printf("input three numbers:\n");
  scanf("%d%d%d",&a,&b,&c);
  if(a>b){
  pmax=&a;
  pmin=&b;
  }
  else{
  pmax=&b;
  pmin=&a;
  }
  if(c>*pmax) pmax=&c;
  if(c<*pmin) pmin="&c;">
  printf("max=%d\nmin=%d\n",*pmax,*pmin);
  }
  ......

  pmax,pmin為整型指針變量。

  輸入提示。

  輸入三個(gè)數(shù)字。

  如果第一個(gè)數(shù)字大于第二個(gè)數(shù)字...

  指針變量賦值

  指針變量賦值

  指針變量賦值

  指針變量賦值

  判斷并賦值

  判斷并賦值

  輸出結(jié)果

  ......

[1] [2]  下一頁

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 巴彦淖尔市| 九江市| 襄樊市| 体育| 瑞昌市| 子长县| 大宁县| 天峻县| 长宁县| 三台县| 甘德县| 海原县| 天柱县| 寿阳县| 淮北市| 舟曲县| 宜宾县| 安图县| 武川县| 普洱| 东乡族自治县| 天峻县| 鹤庆县| 诸城市| 新乡市| 睢宁县| 寻乌县| 达拉特旗| 开封市| 乌兰察布市| 绩溪县| 梁河县| 平定县| 济南市| 柳林县| 洛南县| 多伦县| 安丘市| 肇州县| 耿马| 甘洛县|