奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語(yǔ)言

C語(yǔ)言指針變量的運(yùn)算

時(shí)間:2024-10-31 18:01:15 C語(yǔ)言 我要投稿
  • 相關(guān)推薦

C語(yǔ)言指針變量的運(yùn)算

  導(dǎo)語(yǔ):指針變量可以進(jìn)行某些運(yùn)算,但其運(yùn)算的種類是有限的。 它只能進(jìn)行賦值運(yùn)算和部分算術(shù)運(yùn)算及關(guān)系運(yùn)算。讓我們了解一下C語(yǔ)言指針變量如何運(yùn)算吧!

  1.指針運(yùn)算符

  (1)取地址運(yùn)算符&

  取地址運(yùn)算符&是單目運(yùn)算符,其結(jié)合性為自右至左,其功能是取變量的地址。在scanf函數(shù)及前面介紹指針變量賦值中,我們已經(jīng)了解并使用了&運(yùn)算符。

  (2)取內(nèi)容運(yùn)算符*

  取內(nèi)容運(yùn)算符*是單目運(yùn)算符,其結(jié)合性為自右至左,用來(lái)表示指針變量所指的變量。在*運(yùn)算符之后跟的變量必須是指針變量。需要注意的是指針運(yùn)算符*和指針變量說(shuō)明中的指針說(shuō)明符* 不是一回事。在指針變量說(shuō)明中,“*”是類型說(shuō)明符,表示其后的變量是指針類型。而表達(dá)式中出現(xiàn)的“*”則是一個(gè)運(yùn)算符用以表示指針變量所指的變量。

  main(){

  int a=5,*p=&a;

  printf ("%d",*p);

  }

  ......

  表示指針變量p取得了整型變量a的地址。本語(yǔ)句表示輸出變量a的值。

  2.指針變量的運(yùn)算

  (1)賦值運(yùn)算

  指針變量的賦值運(yùn)算有以下幾種形式:

  ①指針變量初始化賦值,前面已作介紹。

  ②把一個(gè)變量的地址賦予指向相同數(shù)據(jù)類型的指針變量。例如:

  int a,*pa;

  pa=&a; /*把整型變量a的地址賦予整型指針變量pa*/

  ③把一個(gè)指針變量的值賦予指向相同類型變量的另一個(gè)指針變量。如:

  int a,*pa=&a,*pb;

  pb=pa; /*把a(bǔ)的地址賦予指針變量pb*/

  由于pa,pb均為指向整型變量的指針變量,因此可以相互賦值。 ④把數(shù)組的首地址賦予指向數(shù)組的指針變量。

  例如: int a[5],*pa;

  pa=a; (數(shù)組名表示數(shù)組的首地址,故可賦予指向數(shù)組的指針變量pa)

  也可寫為:

  pa=&a[0]; /*數(shù)組第一個(gè)元素的地址也是整個(gè)數(shù)組的首地址,

  也可賦予pa*/

  當(dāng)然也可采取初始化賦值的方法:

  int a[5],*pa=a;

  ⑤把字符串的首地址賦予指向字符類型的指針變量。例如: char *pc;pc="c language";或用初始化賦值的方法寫為: char *pc="C Language"; 這里應(yīng)說(shuō)明的是并不是把整個(gè)字符串裝入指針變量, 而是把存放該字符串的字符數(shù)組的首地址裝入指針變量。 在后面還將詳細(xì)介紹。

  ⑥把函數(shù)的入口地址賦予指向函數(shù)的指針變量。例如: int (*pf)();pf=f; /*f為函數(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)算是毫無(wú)意義的。(3)兩個(gè)指針變量之間的運(yùn)算只有指向同一數(shù)組的兩個(gè)指針變量之間才能進(jìn)行運(yùn)算, 否則運(yùn)算毫無(wú)意義。

  ①兩指針變量相減

  兩指針變量相減所得之差是兩個(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是什么意思呢?毫無(wú)實(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<pf2表示pf2處于低地址位置< p="">

  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);

  }

  ......

  說(shuō)明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é)果


【C語(yǔ)言指針變量的運(yùn)算】相關(guān)文章:

C語(yǔ)言中指針變量作為函數(shù)參數(shù)詳解07-01

C語(yǔ)言指針的概念08-20

C語(yǔ)言指針函數(shù)和函數(shù)指針詳解09-29

C語(yǔ)言變量的類型10-30

C語(yǔ)言變量定義07-29

C語(yǔ)言的指針類型詳解05-21

如何理解C語(yǔ)言指針05-19

C語(yǔ)言運(yùn)算06-09

C語(yǔ)言變量的定義與使用09-05

C語(yǔ)言中的指針是什么08-08

主站蜘蛛池模板: 兴城市| 太保市| 汝南县| 库车县| 类乌齐县| 白银市| 昭平县| 宜春市| 台东县| 苏尼特右旗| 莱州市| 汝州市| 江陵县| 兴山县| 江山市| 青田县| 浦城县| 永昌县| 永顺县| 文登市| 明光市| 新昌县| 灌云县| 山阴县| 海淀区| 墨竹工卡县| 茶陵县| 新建县| 同心县| 奉节县| 衡阳县| 昌乐县| 化德县| 郓城县| 云安县| 广昌县| 时尚| 广元市| 宁波市| 怀集县| 昔阳县|