亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 指針與指針變量.txt

?? 對(duì)于想深入了解C語(yǔ)言的本質(zhì)有著很好的幫助。
?? TXT
字號(hào):
通常指針變量的使用是:先定義指針變量,后給指針變量賦值,最后引用指針變量。現(xiàn)說(shuō)明如下:
  (1)定義指針變量
  在變量定義語(yǔ)句int *p, *p1, *q; 中用 * 定義的變量均為指針變量。因此該語(yǔ)句定義了名為p、p1與q三個(gè)整型指針變量。因?yàn)橹羔樧兞坑糜诖娣抛兞康刂罚刂吠ǔ?字節(jié),所以指針變量的長(zhǎng)度均為4個(gè)字節(jié)。
  (2)指針變量賦值
  指針變量定義后其值為隨機(jī)數(shù),若此隨機(jī)數(shù)為系統(tǒng)區(qū)的地址,則對(duì)該指針變量所指系統(tǒng)區(qū)某存儲(chǔ)單元進(jìn)行賦值運(yùn)算,將改變系統(tǒng)區(qū)該單元中內(nèi)容,可能導(dǎo)致系統(tǒng)的崩潰。所以,指針變量定義后必須賦某個(gè)變量的地址或0。
  從上面例子可以看出,給指針變量賦初值有三種情況:
  第一種情況是用取地址運(yùn)算符"&"將變量地址賦給指針變量。如:p=&a;
  第二種情況是將一個(gè)指針變量中的地址賦給另一個(gè)指針變量,如:p1=p;
  第三種情況是給指針變量賦空值0,如q=0;表示該指針變量不指向任何變量。
  經(jīng)過(guò)賦值后,使指針變量p、p1指向變量a,q不指向任何單元,如圖7.2所示。
  (3)指針變量的引用
  指針變量的引用是通過(guò)指針運(yùn)算符"*"實(shí)現(xiàn)。在上例中,*p與*p1均表示變量a,因此,第一個(gè)輸出語(yǔ)句 cout<<*p 被執(zhí)行后,輸出的是變量a的內(nèi)容100。而賦值語(yǔ)句 *p1=200;是通過(guò)指針變量p1間接的將數(shù)據(jù)200賦給變量a,因此,第二個(gè)輸出語(yǔ)句中,a 、*p、 *p1同為賦值后變量a的內(nèi)容200。
  (4)指針變量初始化
  指針變量可以象普通變量一樣,在定義指針變量時(shí)賦初值,如上例中,定義指針變量p的語(yǔ)句可寫(xiě)成:int *p=&a; 

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


  指針變量的運(yùn)算有三種:賦值運(yùn)算、關(guān)系運(yùn)算與算術(shù)運(yùn)算。
  1.指針變量賦值運(yùn)算
  指針變量賦值運(yùn)算就是將變量的地址賦給指針變量,上節(jié)內(nèi)容已介紹過(guò),現(xiàn)再舉一例加深讀者對(duì)指針變量賦值運(yùn)算的理解。
  【例7.2】定義三個(gè)整型變量a1、a2、a3,用指針變量完成a3=a1+a2的操作。再定義兩個(gè)實(shí)型變量b1、b2,用指針變量完成b1+b2的操作。
 # include <iostream.h>
 void main (void)
 { int a1=1,a2=2,a3;
  int *p1,*p2,*p3;
  float b1=12.5,b2=25.5;
  float *fp1,*fp2;
  p1=&a1;
  p2=&a2;
  p3=&a3;
  *p3= * p1 + *p2;
  fp1=&b1;
  fp2=&b2;
  cout<<" *p1="<<*p1<<'\t'<<" *p2="<<*p2<<'\t' <<"*p1+*p2="<<*p3<<'\n';
  cout<<"a1="<<a1<<'\t'<<" a2="<<a2<<'\t' <<"a1+a2="<<a3<<'\n';
  cout<<"b1=" <<*fp1<<'\t'<<" b2="<<*fp2<<'\t'<<"b1+b2="<<*fp1+*fp2<<'\n';
 }
 

  程序執(zhí)行后,輸出:
  *p1=1 *p2=2 *p1+ *p2=3
  a1=1 a2=2 a1+a2=3
  b1=12.5 b2=25.5 b1+b2=38
  在此例中,經(jīng)過(guò)指針變量賦值運(yùn)算后,整型指針變量p1、p2、p3分別指向變量a1、a2、a3,因此,*p1=a1,*p2=a2,*p3=a3。所以,*p3= * p1 + *p2 操作就是a3=a1+a2 操作。如圖7.3(a)所示。

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


  指針變量的算術(shù)運(yùn)算主要有指針變量的自加、自減、加n和減n操作。
  (1)指針變量自加運(yùn)算
  指令格式:<指針變量>++;
  指針變量自加運(yùn)算并不是將指針變量值加1的運(yùn)算,而是將指針變量指向下一個(gè)元素的運(yùn)算。當(dāng)計(jì)算機(jī)執(zhí)行 <指針變量>++ 指令后,指針變量實(shí)際增加值為指針變量類型字節(jié)數(shù),即:<指針變量>=<指針變量>+sizeof(<指針變量類型>)。假設(shè)數(shù)組a的首地址為1000,如圖7.4所示。

int *p=&a[0]; //p=1000,指向a[0]元素
  p++; 
  第一條語(yǔ)句將數(shù)組a的首地址1000賦給指針變量p,使p=1000。第二條語(yǔ)句使p作自加運(yùn)算:
  p=p+sizeof(int)=p+4=1004,使p指向下一個(gè)元素a[1] 。

   (2)指針變量自減運(yùn)算
  指令格式:<指針變量>――;
  指針變量的自減運(yùn)算是將指針變量指向上一元素的運(yùn)算。當(dāng)計(jì)算機(jī)執(zhí)行 <指針變量>―― 指令后,指針變量實(shí)際減少為指針變量類型字節(jié)數(shù),即:
  <指針變量>=<指針變量>―sizeof(<指針變量類型>)
  自加運(yùn)算和自減運(yùn)算既可后置,也可前置。
  (3)指針變量加n運(yùn)算
  指令格式:<指針變量>=<指針變量>+n;
  指針變量的加n運(yùn)算是將指針變量指向下n個(gè)元素的運(yùn)算。當(dāng)計(jì)算機(jī)執(zhí)行 <指針變量>+ n 指令后,指針變量實(shí)際增加值為指針變量類型字節(jié)數(shù)乘以n,即:
<指針變量>=<指針變量>+sizeof(<指針變量類型>)*n
  (4)指針變量減n運(yùn)算
  指令格式:<指針變量>=<指針變量>―n;
  指針變量的減n運(yùn)算是將指針變量指向上n個(gè)元素的運(yùn)算。當(dāng)計(jì)算機(jī)執(zhí)行 <指針變量>― n 指令后,指針變量實(shí)際減少值為指針變量類型字節(jié)數(shù)乘以n,即:
  <指針變量>=<指針變量>―sizeof(<指針變量類型>)*n
【例7.3】指針變量的自加、自減、加n和減n運(yùn)算。假設(shè)數(shù)組a的首地址為1000,如圖7.4所示。


 # include <iostream.h>
 void main( void)
 { int a[5]={0,1,2,3,4};
  int *p;
  p=&a[0]; //p指向a[0],p=1000
  p++ ; //p指向下一個(gè)元素a[1],p=1004
  cout<< *p<<'\t'; //輸出a[1]的內(nèi)容1。
  p=p+3; //p指向下3個(gè)元素a[4],p=1016 
  cout<< *p<<'\t'; //輸出a[4]的內(nèi)容4。
  p――; //p指向上一個(gè)元素a[3],p=1012
  cout<< *p<<'\t'; //輸出a[3]的內(nèi)容3。
  p=p―3; //p指向上3個(gè)元素a[0],p=1000
  cout<< *p<<'\t'; //輸出a[0]的內(nèi)容0。
 }
  程序執(zhí)行后輸出:
  1 4 3 0
  從上例可以看出,通過(guò)對(duì)指針變量的加減算術(shù)運(yùn)算,可以達(dá)到移動(dòng)指針變量指向下n個(gè)元素單元或向上n個(gè)元素單元的目的。

3.指針變量的關(guān)系運(yùn)算
  指針變量的關(guān)系運(yùn)算是指針變量值的大小比較,即對(duì)兩個(gè)指針變量?jī)?nèi)的地址進(jìn)行比較,主要用于對(duì)數(shù)組元素的判斷。


  【例7.4】用指針變量求一維實(shí)型數(shù)組元素和,并輸出數(shù)組每個(gè)元素的值及數(shù)組和。
 # include <iostream.h>
 void main( void )
 { int a[5]={1,2,3,4,5};
  int *p,*p1;
  p1=&a[4]+1;
  for (p=&a[0];p<p1;p++) 
  cout <<*p<<'\t';
  int sum=0;
  p=&a[0];
  while (p!=p1) sum+=*p++;
  cout <<"\n sum="<<sum<<endl;
 }
  執(zhí)行程序后:輸出:
  1 2 3 4 5 
  sum=15
  程序中首先將數(shù)組尾地址+1賦給p1,如圖7.4所示。在for 語(yǔ)句中,指針變量p為循環(huán)變量,數(shù)組首地址&a[0]賦給p。循環(huán)時(shí)先將循環(huán)控制變量p與p1中地址比較,若p<p1,則以*p方式輸出數(shù)組元素a[i]的值,并將p自加指向下一個(gè)元素。此循環(huán)直到p≥p1為止。
  在while語(yǔ)句中,仍用p作為循環(huán)控制變量,當(dāng)p!=p1時(shí),用sum=sum+*p;語(yǔ)句將數(shù)組元素值累加到sum中去,同時(shí)用 p++語(yǔ)句使指針變量p指向下一個(gè)元素,循環(huán)直到p=p1為止,最后輸出數(shù)組元素之和。

4.指針運(yùn)算符的混合運(yùn)算與優(yōu)先級(jí)


  (1)指針運(yùn)算符* 與取地址運(yùn)算符&的優(yōu)先級(jí)相同,按自右向左的方向結(jié)合。
  設(shè)有變量定義語(yǔ)句: int a, *p=&a; 
  則表達(dá)式:&*p 的求值順序?yàn)橄?quot;*"后"&",即& (*p)=&a=p 。
  而表達(dá)式:*&a 的求值順序?yàn)橄?quot;&"后"*",即* (&a)=*p=a 。
  (2)"++"、"――"、"*"、"&"的優(yōu)先級(jí)相同,按自右向左方向結(jié)合。下面結(jié)合例子加以說(shuō)明。設(shè)有變量定義語(yǔ)句:
  int a[4]={100,200,300,400},b;
  int * p=&a[0]; 
  為了敘述方便,假設(shè)系統(tǒng)給數(shù)組a分配的首地址為1000,如圖7.4所示。
  ① b=*p++; 
  按自右向左結(jié)合的原則,表達(dá)式 *p++ 求值序順為先"++"后"*",即:*(p++)。由于"++"在p之后為后置++運(yùn)算符,所以表達(dá)式的實(shí)際操作是先取*p值,后進(jìn)行p++的自加操作。即賦值表達(dá)式 b=*p++; 等同于下面兩條語(yǔ)句: 
  b=*p; // b=*p=a[0]=100
  p++; //p=p+sizeof(int)= 1004
  最后運(yùn)算的結(jié)果為b=100,p=1004指向a[1]。
  ② b=*++p; 
  按自右向左結(jié)合的原則,表達(dá)式 *++p 求值順序?yàn)橄?quot;++"后"*",即:*(++p)。由于++在p之前為前置++運(yùn)算符,所以表達(dá)式的實(shí)際操作是進(jìn)行++p的自加操作,后取*p值。即賦值表達(dá)式 b=*++p; 等同于下面兩條語(yǔ)句: 
  ++p; //p=p+sizeof(int)= 1008,指向a[2]
  b=*p; // b=*p=a[2]=300
  最后運(yùn)算的結(jié)果為b=300,p=1008指向a[2]。

③ b=(*p)++; 
  由于括號(hào)內(nèi)優(yōu)先運(yùn)算,所以表達(dá)式先取出*p(即a[2])的值并賦給b,然后將*p的值即a[2]內(nèi)容加1。所以表達(dá)式等同于下面兩條語(yǔ)句:
  b=*p; //b=a[2]=300 
  a[2]++ ; // a[2]=300+1=301
  ④ b=*(p++); 
  由①可知,該表達(dá)式等同于*p++,運(yùn)算結(jié)果為:
  b=*p; //b=a[2]=301
  p++; // p=p+sizeof(int)=1012,指向a[3]
  ⑤ b=++*p ;
  該表達(dá)式先進(jìn)行"*"運(yùn)算,再進(jìn)行"++"運(yùn)算,即先取出*p的值,再將該值加1。因此表達(dá)式實(shí)際進(jìn)行了如下運(yùn)算:b=++(*p)=++a[3]=400+1=401; p仍指向a[3]不變。
  將上述討論中各語(yǔ)句匯總為例題如下:


 

  【例7.5】指針運(yùn)算符"*"、"&"、"++"優(yōu)先級(jí)與結(jié)合律示例。
 # include <iostream.h>
 main()
 { int a[4]={100,200,300,400},b;
  int *p=&a[0];
  cout<<'\t'<<"p="<<p<<endl;
  b=*p++;
  cout<<"b="<<b<<'\t'<<"p="<<p<<endl;
  b=*++p;
  cout<<"b="<<b<<'\t'<<"p="<<p<<endl;
  b=(*p)++;
  cout<<"b="<<b<<'\t'<<"p="<<p<<endl;
  b=*(p++);
  cout<<"b="<<b<<'\t'<<"p="<<p<<endl;
  b=++*p;
  cout<<"b="<<b<<'\t'<<"p="<<p<<endl;
  }
  運(yùn)行結(jié)果為:
  p=0x0065FDE8
  b=100 p=0x0065FDEC
  b=300 p=0x0065FDF0
  b=300 p=0x0065FDF0
  b=301 p=0x0065FDF4
  b=401 p=0x0065FDF4
  說(shuō)明:在定義數(shù)組時(shí),數(shù)據(jù)a的地址是由操作系統(tǒng)存儲(chǔ)管理動(dòng)態(tài)分配的,因此,數(shù)組a的地址是不確定的,每次運(yùn)行的結(jié)果都可能會(huì)不同。一般用十六進(jìn)制數(shù)表示。本例中系統(tǒng)為數(shù)組a分配的首地址為0x0065FDE8。而在圖7.4中所假設(shè)的地址1000~1016完全是為了便于讀者理解。













?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本到不卡精品视频在线观看| 亚洲电影视频在线| 国产一区二区三区四区五区入口| 正在播放亚洲一区| 老司机一区二区| 日韩欧美色电影| 国产精品一区二区91| 久久精品一区二区三区av| 国产一区二区影院| 国产精品丝袜黑色高跟| 99在线精品视频| 一区二区三区久久| 91精品在线观看入口| 日本不卡123| 久久午夜国产精品| 成人av影院在线| 樱桃视频在线观看一区| 欧美人妇做爰xxxⅹ性高电影 | 北条麻妃国产九九精品视频| 亚洲欧美日韩一区二区| 欧美天堂亚洲电影院在线播放| 亚洲成人tv网| 精品国产3级a| 99热在这里有精品免费| 亚洲小少妇裸体bbw| 日韩视频在线一区二区| 国产福利一区在线| 亚洲欧美国产毛片在线| 欧美一级一区二区| 成人国产视频在线观看| 亚洲成a人v欧美综合天堂| 日韩精品影音先锋| 99久久99久久精品国产片果冻| 午夜久久久影院| 国产亚洲福利社区一区| 色噜噜夜夜夜综合网| 久久成人久久鬼色| 日韩码欧中文字| 欧美zozo另类异族| 日本韩国一区二区| 狠狠色狠狠色综合系列| 亚洲乱码精品一二三四区日韩在线| 欧美肥胖老妇做爰| 97久久精品人人做人人爽| 美国三级日本三级久久99 | 国产黄色精品网站| 亚洲一区二区在线免费观看视频| 欧美大片一区二区| 欧美在线视频全部完| 国产一区激情在线| 天堂va蜜桃一区二区三区漫画版| 欧美激情在线一区二区| 日韩亚洲欧美一区二区三区| 色综合久久88色综合天天免费| 久久99最新地址| 午夜天堂影视香蕉久久| 欧美国产日韩一二三区| 日韩一级片网站| 欧美艳星brazzers| a4yy欧美一区二区三区| 国模娜娜一区二区三区| 日本伊人午夜精品| 亚洲一区二区在线观看视频| 国产精品成人网| 精品福利一二区| 欧美一二区视频| 欧美精品第1页| 在线观看不卡一区| 一本久道久久综合中文字幕| 国产999精品久久久久久绿帽| 日韩精品五月天| 午夜精品一区二区三区电影天堂| ...av二区三区久久精品| 久久久不卡网国产精品一区| 欧美成人一区二区三区片免费| 欧美日韩精品三区| 欧美日韩国产一级片| 91官网在线观看| 在线观看一区二区视频| 色综合天天性综合| www.激情成人| 97se亚洲国产综合在线| 91在线观看一区二区| 91尤物视频在线观看| 99国产精品国产精品久久| 波多野结衣中文字幕一区| 成人av资源在线| 一本到一区二区三区| 欧美在线免费观看视频| 欧美色区777第一页| 欧美日韩一区二区三区四区| 欧美日韩高清一区| 91.com在线观看| 日韩三级伦理片妻子的秘密按摩| 日韩欧美国产综合一区| 久久综合九色欧美综合狠狠 | 久久97超碰国产精品超碰| 蜜臀a∨国产成人精品| 狠狠色丁香婷婷综合| 国产成人午夜精品影院观看视频 | 久久久美女毛片| 国产欧美va欧美不卡在线| 国产精品精品国产色婷婷| 国产精品国产三级国产专播品爱网| 亚洲视频中文字幕| 亚洲大片在线观看| 另类小说欧美激情| 成人国产亚洲欧美成人综合网 | 97久久精品人人澡人人爽| 欧美专区在线观看一区| 日韩限制级电影在线观看| 国产婷婷一区二区| 亚洲欧美一区二区三区极速播放| 亚洲国产视频a| 狠狠色综合播放一区二区| 成人精品视频一区二区三区尤物| 在线欧美小视频| 欧美v国产在线一区二区三区| 国产女同性恋一区二区| 亚洲国产一区二区视频| 国产一区二区三区免费在线观看| 99久久99久久久精品齐齐| 欧美一区二区网站| 中文在线一区二区| 五月婷婷久久丁香| 国产成人aaa| 制服视频三区第一页精品| 中文欧美字幕免费| 丝袜诱惑亚洲看片| 99久久精品费精品国产一区二区| 欧美日韩国产精选| 中文字幕精品一区二区精品绿巨人| 亚洲一区二区在线观看视频| 国产精品资源在线看| 欧美网站大全在线观看| 中文天堂在线一区| 青青草视频一区| 91国偷自产一区二区使用方法| 精品91自产拍在线观看一区| 亚洲国产精品自拍| 99视频一区二区| 久久色在线观看| 五月天丁香久久| 色婷婷亚洲综合| 欧美国产日韩亚洲一区| 精品亚洲porn| 91精品国产一区二区| 亚洲精品视频一区| 成人免费视频视频| 精品入口麻豆88视频| 香港成人在线视频| 色婷婷国产精品久久包臀 | 日韩视频在线观看一区二区| 亚洲欧美另类小说| 成人av在线电影| 国产日产亚洲精品系列| 久久av资源网| 日韩限制级电影在线观看| 亚洲成人tv网| 欧美伊人精品成人久久综合97 | av网站免费线看精品| www国产成人免费观看视频 深夜成人网| 午夜精品福利一区二区三区av| 91尤物视频在线观看| 国产精品二三区| 成人黄色国产精品网站大全在线免费观看| 精品国产一区二区三区四区四| 日韩国产在线一| 在线不卡一区二区| 日韩成人免费看| 欧美一区二区三区在线电影| 无码av免费一区二区三区试看| 欧美自拍偷拍一区| 亚洲sss视频在线视频| 欧美在线你懂的| 亚洲福利一区二区三区| 欧美视频在线一区二区三区 | 久久精品在这里| 国产91精品免费| 国产精品久久久久影院老司| 成人免费高清在线观看| 成人欧美一区二区三区黑人麻豆 | 亚洲电影中文字幕在线观看| 欧美三级午夜理伦三级中视频| 亚洲精品国产精华液| 欧美怡红院视频| 日精品一区二区三区| 5月丁香婷婷综合| 精东粉嫩av免费一区二区三区| 久久免费美女视频| 99久久国产综合色|国产精品| 亚洲欧洲精品一区二区精品久久久 | 7777精品伊人久久久大香线蕉的 | 日韩国产欧美在线观看| 日韩美一区二区三区| 国产精品1区2区3区在线观看| 国产精品热久久久久夜色精品三区| 99久久免费国产| 午夜电影一区二区| 久久先锋影音av|