




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第5章指針與數組學習目標理解指針、地址和數組的概念學會使用數組和字符數組學會指針運算的方法和技巧學會指針作為函數參數的用法理解函數的指針和返回指針值的函數了解指針與二維數組配合的編程方法了解“指針的指針”的定義指針是一種用于存放另一個變量的地址的變量優(yōu)點是:
①可以生成更高效、更緊湊的代碼;
②有效地表示復雜的數據結構;
③動態(tài)分配內存;
④得到多于一個的函數返回值12/19/20221程序設計基礎張杰敏第5章指針與數組學習目標指針是一種用于存放另一個變量的地址5.1指針與地址(1)內存單元的編號也叫做地址通常也把存放地址的變量稱為指針或指針變量對于一個內存單元來說,單元的地址(編號)即為指針變量的值,單元的內容是其中存放的數據12/19/20222程序設計基礎張杰敏5.1指針與地址(1)內存單元的編號也叫做地址12/185.1指針與地址(2)指針變量的說明包括類型說明、指針變量名和指針所指向的變量的數據類型三個內容,其一般語法形式為:
類型說明符*變量名
其中,*表示這是一個指針變量,變量名即為定義的指針變量名,類型說明符表示本指針變量所指向的變量的數據類型例如:int*p1;表示p1是一個指針變量,它的值是某個整型變量的地址C語言中提供了地址運算符&來表示變量的地址。其一般語法形式為:
&變量名如&a變示變量a的地址,&b表示變量b的地址。變量本身必須預先說明取內容運算的一般語法形式是:
*地址這里“地址”可以是指針變量名、數組名或表示地址的整型表達式12/19/20223程序設計基礎張杰敏5.1指針與地址(2)指針變量的說明包括類型說明、指針變量5.1指針與地址(3)指針的比較兩個指針在一定條件下可以進行比較。如果兩個指針p和q指向同一數組,則它們可以進行〉,〉=,〈,〈=、==和!=等比較運算。例如:p<q若指針p指向的位置位于指針q指向的位置之前,則其值為真;反之則為假p==q若指針p和q都指向同一個變量,則其值為真;否則為假p==0若指針p為一個空指針,則其值為真;反之為假p!=0若指針p不是空指針,則其值為真,反之為假
12/19/20224程序設計基礎張杰敏5.1指針與地址(3)指針的比較12/18/20224程序5.2指針算術運算對指針來說,有加,減兩種算術運算,可用的算術運算符有:+,-,++,--,+=和-=運算規(guī)則如下:
①指針的算術運算是根據其類型的長度確定增減量來進行。由于地址計算與其相應數據類型占字節(jié)數有關,故指針的增減量,根據其類型的長度確定。
②++(--):指針增1運算,即指針向前移動一個數據的位置,指向的新地址為原地址+(-)sizeof(類型說明符).如設:int*p=&k;則若k的地址為2000,p++以后P的值變?yōu)?002,而非2001。p每增一次,就將指針指向后一個整數(兩個字節(jié)),P--后為1998而非1999.
③+(-):指針變量加(減)正整數n,即表示指針向后(前)移動n個數據,使該指針所指向的地址為原地址+(-)sizcof(類型說明符)*n。如:p=p+5;之后p值為2000+5*2=2010。
④.說明:指針僅能做以上幾種算術運算,除此之外的運算即是非法的
12/19/20225程序設計基礎張杰敏5.2指針算術運算對指針來說,有加,減兩種算術運算,可用的5.3指針與函數參數函數調用過程中有傳值和傳址兩種參數傳遞方法指針作為函數參數,使得函數的調用靈活、高效指針與函數參數的配合使用,常見有三種:函數的參數為指針型、函數的返回值為指針型函數指針(指針的基本類型為函數)
舉例說明12/19/20226程序設計基礎張杰敏5.3指針與函數參數函數調用過程中有傳值和傳址兩種參數傳遞5.4數組(1)在計算機高級語言中,把具有同一名字,互相有聯系且按一定順序排列的變量稱為數組數組中的每一變量都用不同的下標來區(qū)別,稱為數組元素,0作為第一個元素的下標需要使用數組時,先要進行定義,然后才能使用12/19/20227程序設計基礎張杰敏5.4數組(1)在計算機高級語言中,把具有同一名字,互相5.4數組(2)一維數組的說明格式。一般語法形式為:
類型
變量名[長度]類型是指數據類型,即每一個數組元素的數據類型,包括整數型、浮點型、字符型、指針型以及后面要講述的結構和聯合一維數組的初始化賦值的一般語法形式為:
類型說明符數組名[常量表達式]={值,值……值}C語言規(guī)定定義數組的同時可作初始化賦值。在{}中的各數據值即為各元素的初值,各值之間用逗號間隔一維數組的引用。C語言規(guī)定只能逐個引用數組元素而不能一次引用整個數組。數組元素的表示形式為
數組名[下標]12/19/20228程序設計基礎張杰敏5.4數組(2)一維數組的說明格式。一般語法形式為:125.4數組(3)用來存放字符數據的數組是字符數組。字符數組中的一個元素存放一個字符。幾點需要說明:①要區(qū)別“字符”和“字符串”,字符變量或字符數組的一個元素只能存放一個字符,用單引號引起來②C語言規(guī)定了一個“字符串結束標志”,以字符‘\0’代表③字符數組的輸入/輸出方式除了逐個元素(字符)輸入輸出外,還可以用”%s”格式符整體輸入/輸出④輸出字符不包括結束符’\0’12/19/20229程序設計基礎張杰敏5.4數組(3)用來存放字符數據的數組是字符數組。字符數5.4數組(4)①二維數組的定義。一般語法形式為:
類型說明符數組名[常量表達式][常量表達式]②二維數組的理解:可以把二維數組看成是一個一維數組,這個一維數組的每個元素又是一維數組③二維數組的元素在內存中的存放循序。按行存放④二維數組中元素的引用。用數組名和下標引用元素⑤二維數組的初始化多維數組的一般語法形式為:
類型
數組名[第n維長度][第n-1維長度]......[第1維長度]12/19/202210程序設計基礎張杰敏5.4數組(4)①二維數組的定義。一般語法形式為:12/5.5數組的指針指向一個數組的指針稱為數組指針,可把數組名或第一個元素的地址賦予它一個指針變量既可以指向一個數組,也可以指向一個數組元素,如果指針指向了數組,也就是指向了數組的第一個元素(首地址)當使指針p指向數組a后,可以用指針p訪問數組的各個元素指針和數組在訪問內存地址中的數據時,其表達形式具有相同意義。但指針與數組名具有本質上的不同,數組名是地址,也可理解為指針常量,而指針是地址變量。指針在使用前必須先賦予一定的地址值指針用指針取值元素p→*(p+0)a[0]p+1→*(p+1)a[1]p+2→*(p+2)a[2]………p+i→*(p+i)a[i]………p+9→*(p+9)a[9]指針引用數組元素12/19/202211程序設計基礎張杰敏5.5數組的指針指向一個數組的指針稱為數組指針,可把數組名5.6字符串的指針字符串的指針,又稱字符指針,本身是一個變量,用于存放字符串的首地址字符串本身是存放在以該首地址為首的一塊連續(xù)的內存空間中并以‘\0’作為串的結束字符串雖然是字符數組,但是字符數組和字符指針的概念不同,用字符串指針方式與字符數組方式使用字符串時是有區(qū)別的,兩者的意義如圖
初始化賦值字符串指針方式:char*ps;ps="Studentpersonnelfile";對數組方式:charst[]={"Studentpersonnelfile"};12/19/202212程序設計基礎張杰敏5.6字符串的指針字符串的指針,又稱字符指針,本身是一個變5.7指針數組(1)指針數組是一個數組,該數組中的每一個元素是指針變量。其一般語法形式為:類型標識符*數組名[數組元素個數]例如:
int*p[4];定義了一個指針數組,數組名p,有4個元素,每一個元素是指向整型變量的指針
int(*p)[4];/*指向數組的指針*/這句定義一個指針變量,它指向有4個元素的一維數組
12/19/202213程序設計基礎張杰敏5.7指針數組(1)指針數組是一個數組,該數組中的每一個元5.7指針數組(2)指針數組主要用于處理多個字符串。字符串本身是一維數組,多個字符串可以用二維數組來處理,但會浪費許多內存。用指針數組處理多個字符串,不會浪費內存。如要將7個國名并按字母順序排列后輸出,一種方法是采用普通的排序方法,逐個比較之后交換字符串的位置。交換字符串的物理位置是通過字符串復制函數完成的。反復的交換將使程序執(zhí)行的速度很慢,同時由于各字符串(國名)的長度不同,又增加了存儲管理的負擔。另一種較好的方法是使用指針數組,排序前后指針的指向情況見圖。把所有的字符串存放在一個數組中,把這些字符數組的首地址放在一個指針數組中,當需要交換兩個字符串時,只須交換指針數組相應兩元素的內容(地址)即可,而不必交換字符串本身。下圖為排序前后示意圖:12/19/202214程序設計基礎張杰敏5.7指針數組(2)指針數組主要用于處理多個字符串。字符串5.8*指針的指針指向指針的指針變量說明的一般語法形式為:
類型說明符**指針變量名;
例如:右圖首先定義說明了指針數組ps并作了初始化賦值。又說明了pps是一個指向指針的指針變量。在5次循環(huán)中,pps分別取得了ps[0],ps[1],ps[2],ps[3],ps[4]的地址值(如圖5-10所示)。再通過這些地址即可找到該字符串12/19/202215程序設計基礎張杰敏5.8*指針的指針指向指針的指針變量說明的一般語法形式為:5.9指針與多維數組(1)簡單指針變量引用多維數組的元素一般地,若需訪問二維數組a[n][m](n行m列)的某個元素a[i][j],計算該元素的相對位置公式為:i*m+j(i,j=0,1,2,...)相當于把二維數組轉化為一維數組來使用如:inta[3,4]={1,3,5,7,9,11,13,15,17,19,21,23};inta[12]={1,3,5,7,9,11,13,15,17,19,21,23};引用時使用a[1][3]和a[7]都是指第8號元素,這里即1512/19/202216程序設計基礎張杰敏5.9指針與多維數組(1)簡單指針變量引用多維數組的元素5.9指針與多維數組(2)通過指針數組引用多維數組元素對于二維數組可以為其中每個一維數組(每行),設一個指針。也可設一個指針數組,這個指針數組的每一個指針指向二維數組中的每個一維數組如:inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};int*pa[3]={a[0],a[1],a[2]};/*將3行的首地址賦給指針數組*/這時的pa[2]+1就指向a[2][1],即整型數1912/19/202217程序設計基礎張杰敏5.9指針與多維數組(2)通過指針數組引用多維數組元素15.9指針與多維數組(3)通過二維數組的數組名表達式引用多維數組的元素二維數組的數組名代表該數組的首地址,相當于一個指針常量二維數組中各一維數組名也是一個指針常量,代表一維數組的首地址。若a的首地址為2000,則右圖可以清楚底說明數組名作為指針常量的引用情況
已知某元素的指針后,可以用*運算符訪問該元素。只需在*()內寫入含數組名的地址表達式,就可以引用數組元素a[0]+1a[0]+2a[0]+3a[0]+1a[0]+2a[0]+312/19/202218程序設計基礎張杰敏5.9指針與多維數組(3)通過二維數組的數組名表達式引用5.9指針與多維數組(4)使用指向二維數組的指針變量二維數組指針變量說明的一般語法形式為:
類型說明符(*指針變量名)[長度]其中“類型說明符”為所指數組的數據類型?!?”表示其后的變量是指針類型?!伴L度”表示二維數組分解為多個一維數組時,一維數組的長度,也就是二維數組的列數設p為指向二維數組的指針變量,把二維數組a[3][4]分解為一維數組a[0],a[1],a[2]之后,可定義為:int(*p)[4];它表示p是一個指針變量,它指向二維數組a或指向第一個一維數組a[0],其值等于a,a[0],或&a[0][0]等。而p+i則指向一維數組a[i]。從前面的分析可得出*(p+i)+j是二維數組i行j列的元素的地址,而*(*(p+i)+j)則是i行j列元素的值
12/19/202219程序設計基礎張杰敏5.9指針與多維數組(4)使用指向二維數組的指針變量125.10指針與函數(1)函數的參數為指針
用指針作函數參數,其作用是將一個變量的地址送到被調用函數之中,由此,被調用函數可以操作外部變量或主調出函數定義的變量單元舉例說明12/19/202220程序設計基礎張杰敏5.10指針與函數(1)函數的參數為指針12/18/205.10指針與函數(2)函數的返回值為指針
在C語言中允許一個函數的返回值是一個指針(即地址)。函數的返回值為指針型時,該函數常被稱為指針型函數。
定義指針型函數的一般語法形式為:
存儲類型數據類型*函數名(形參表)
{
…/*函數體*/
}其中函數名之前加了“*”號表明這是一個指針型函數,即返回值是一個指針。存儲類型是指該函數本身的存儲特性,一般分為缺省存儲類型和static型。數據類型說明符表示了返回的指針值所指向的數據類型舉例說明12/19/202221程序設計基礎張杰敏5.10指針與函數(2)函數的返回值為指針12/18/25.10指針與函數(3)指向函數的指針
在C語言中規(guī)定,一個函數總是占用一段連續(xù)的內存區(qū),而函數名就是該函數所占內存區(qū)的首地址。我們可以把函數的這個首地址(或稱入口地址)賦予一個指針變量,使該指針變量指向該函數,然后通過指針變量就可以找到并調用這個函數。我們把這種指向函數的指針變量稱為函數指針變量或函數(型)指針。函數指針定義和說明的一般語法形式;
存儲類型數據類型(*函數指針名)();其中,存儲類型是指函數指針本身的存儲特性,而數據類型是指針所指向的函數的數據類型函數指針主要用于在函數間傳遞函數12/19/202222程序設計基礎張杰敏5.10指針與函數(3)指向函數的指針12/18/2025.11編程指導常使用符號常量是一個好習慣一種常用的重要風格是對程序進行結構化,用一個函數來完成一個基本任務,這種作法是結構化編程的核心指針變量前面字母一般為p或ptr,這樣可以清楚地標示這些變量是指針對頻繁訪問的函數中的動態(tài)數組,可以聲明為static。這樣不會在每次調用函數時都初始化數組,而每次退出時也不會破壞數組12/19/202223程序設計基礎張杰敏5.11編程指導常使用符號常量是一個好習慣12/18/2本章小結小結要點12/19/202224程序設計基礎張杰敏本章小結小結要點12/18/202224程序設計基礎張杰第5章指針與數組學習目標理解指針、地址和數組的概念學會使用數組和字符數組學會指針運算的方法和技巧學會指針作為函數參數的用法理解函數的指針和返回指針值的函數了解指針與二維數組配合的編程方法了解“指針的指針”的定義指針是一種用于存放另一個變量的地址的變量優(yōu)點是:
①可以生成更高效、更緊湊的代碼;
②有效地表示復雜的數據結構;
③動態(tài)分配內存;
④得到多于一個的函數返回值12/19/202225程序設計基礎張杰敏第5章指針與數組學習目標指針是一種用于存放另一個變量的地址5.1指針與地址(1)內存單元的編號也叫做地址通常也把存放地址的變量稱為指針或指針變量對于一個內存單元來說,單元的地址(編號)即為指針變量的值,單元的內容是其中存放的數據12/19/202226程序設計基礎張杰敏5.1指針與地址(1)內存單元的編號也叫做地址12/185.1指針與地址(2)指針變量的說明包括類型說明、指針變量名和指針所指向的變量的數據類型三個內容,其一般語法形式為:
類型說明符*變量名
其中,*表示這是一個指針變量,變量名即為定義的指針變量名,類型說明符表示本指針變量所指向的變量的數據類型例如:int*p1;表示p1是一個指針變量,它的值是某個整型變量的地址C語言中提供了地址運算符&來表示變量的地址。其一般語法形式為:
&變量名如&a變示變量a的地址,&b表示變量b的地址。變量本身必須預先說明取內容運算的一般語法形式是:
*地址這里“地址”可以是指針變量名、數組名或表示地址的整型表達式12/19/202227程序設計基礎張杰敏5.1指針與地址(2)指針變量的說明包括類型說明、指針變量5.1指針與地址(3)指針的比較兩個指針在一定條件下可以進行比較。如果兩個指針p和q指向同一數組,則它們可以進行〉,〉=,〈,〈=、==和!=等比較運算。例如:p<q若指針p指向的位置位于指針q指向的位置之前,則其值為真;反之則為假p==q若指針p和q都指向同一個變量,則其值為真;否則為假p==0若指針p為一個空指針,則其值為真;反之為假p!=0若指針p不是空指針,則其值為真,反之為假
12/19/202228程序設計基礎張杰敏5.1指針與地址(3)指針的比較12/18/20224程序5.2指針算術運算對指針來說,有加,減兩種算術運算,可用的算術運算符有:+,-,++,--,+=和-=運算規(guī)則如下:
①指針的算術運算是根據其類型的長度確定增減量來進行。由于地址計算與其相應數據類型占字節(jié)數有關,故指針的增減量,根據其類型的長度確定。
②++(--):指針增1運算,即指針向前移動一個數據的位置,指向的新地址為原地址+(-)sizeof(類型說明符).如設:int*p=&k;則若k的地址為2000,p++以后P的值變?yōu)?002,而非2001。p每增一次,就將指針指向后一個整數(兩個字節(jié)),P--后為1998而非1999.
③+(-):指針變量加(減)正整數n,即表示指針向后(前)移動n個數據,使該指針所指向的地址為原地址+(-)sizcof(類型說明符)*n。如:p=p+5;之后p值為2000+5*2=2010。
④.說明:指針僅能做以上幾種算術運算,除此之外的運算即是非法的
12/19/202229程序設計基礎張杰敏5.2指針算術運算對指針來說,有加,減兩種算術運算,可用的5.3指針與函數參數函數調用過程中有傳值和傳址兩種參數傳遞方法指針作為函數參數,使得函數的調用靈活、高效指針與函數參數的配合使用,常見有三種:函數的參數為指針型、函數的返回值為指針型函數指針(指針的基本類型為函數)
舉例說明12/19/202230程序設計基礎張杰敏5.3指針與函數參數函數調用過程中有傳值和傳址兩種參數傳遞5.4數組(1)在計算機高級語言中,把具有同一名字,互相有聯系且按一定順序排列的變量稱為數組數組中的每一變量都用不同的下標來區(qū)別,稱為數組元素,0作為第一個元素的下標需要使用數組時,先要進行定義,然后才能使用12/19/202231程序設計基礎張杰敏5.4數組(1)在計算機高級語言中,把具有同一名字,互相5.4數組(2)一維數組的說明格式。一般語法形式為:
類型
變量名[長度]類型是指數據類型,即每一個數組元素的數據類型,包括整數型、浮點型、字符型、指針型以及后面要講述的結構和聯合一維數組的初始化賦值的一般語法形式為:
類型說明符數組名[常量表達式]={值,值……值}C語言規(guī)定定義數組的同時可作初始化賦值。在{}中的各數據值即為各元素的初值,各值之間用逗號間隔一維數組的引用。C語言規(guī)定只能逐個引用數組元素而不能一次引用整個數組。數組元素的表示形式為
數組名[下標]12/19/202232程序設計基礎張杰敏5.4數組(2)一維數組的說明格式。一般語法形式為:125.4數組(3)用來存放字符數據的數組是字符數組。字符數組中的一個元素存放一個字符。幾點需要說明:①要區(qū)別“字符”和“字符串”,字符變量或字符數組的一個元素只能存放一個字符,用單引號引起來②C語言規(guī)定了一個“字符串結束標志”,以字符‘\0’代表③字符數組的輸入/輸出方式除了逐個元素(字符)輸入輸出外,還可以用”%s”格式符整體輸入/輸出④輸出字符不包括結束符’\0’12/19/202233程序設計基礎張杰敏5.4數組(3)用來存放字符數據的數組是字符數組。字符數5.4數組(4)①二維數組的定義。一般語法形式為:
類型說明符數組名[常量表達式][常量表達式]②二維數組的理解:可以把二維數組看成是一個一維數組,這個一維數組的每個元素又是一維數組③二維數組的元素在內存中的存放循序。按行存放④二維數組中元素的引用。用數組名和下標引用元素⑤二維數組的初始化多維數組的一般語法形式為:
類型
數組名[第n維長度][第n-1維長度]......[第1維長度]12/19/202234程序設計基礎張杰敏5.4數組(4)①二維數組的定義。一般語法形式為:12/5.5數組的指針指向一個數組的指針稱為數組指針,可把數組名或第一個元素的地址賦予它一個指針變量既可以指向一個數組,也可以指向一個數組元素,如果指針指向了數組,也就是指向了數組的第一個元素(首地址)當使指針p指向數組a后,可以用指針p訪問數組的各個元素指針和數組在訪問內存地址中的數據時,其表達形式具有相同意義。但指針與數組名具有本質上的不同,數組名是地址,也可理解為指針常量,而指針是地址變量。指針在使用前必須先賦予一定的地址值指針用指針取值元素p→*(p+0)a[0]p+1→*(p+1)a[1]p+2→*(p+2)a[2]………p+i→*(p+i)a[i]………p+9→*(p+9)a[9]指針引用數組元素12/19/202235程序設計基礎張杰敏5.5數組的指針指向一個數組的指針稱為數組指針,可把數組名5.6字符串的指針字符串的指針,又稱字符指針,本身是一個變量,用于存放字符串的首地址字符串本身是存放在以該首地址為首的一塊連續(xù)的內存空間中并以‘\0’作為串的結束字符串雖然是字符數組,但是字符數組和字符指針的概念不同,用字符串指針方式與字符數組方式使用字符串時是有區(qū)別的,兩者的意義如圖
初始化賦值字符串指針方式:char*ps;ps="Studentpersonnelfile";對數組方式:charst[]={"Studentpersonnelfile"};12/19/202236程序設計基礎張杰敏5.6字符串的指針字符串的指針,又稱字符指針,本身是一個變5.7指針數組(1)指針數組是一個數組,該數組中的每一個元素是指針變量。其一般語法形式為:類型標識符*數組名[數組元素個數]例如:
int*p[4];定義了一個指針數組,數組名p,有4個元素,每一個元素是指向整型變量的指針
int(*p)[4];/*指向數組的指針*/這句定義一個指針變量,它指向有4個元素的一維數組
12/19/202237程序設計基礎張杰敏5.7指針數組(1)指針數組是一個數組,該數組中的每一個元5.7指針數組(2)指針數組主要用于處理多個字符串。字符串本身是一維數組,多個字符串可以用二維數組來處理,但會浪費許多內存。用指針數組處理多個字符串,不會浪費內存。如要將7個國名并按字母順序排列后輸出,一種方法是采用普通的排序方法,逐個比較之后交換字符串的位置。交換字符串的物理位置是通過字符串復制函數完成的。反復的交換將使程序執(zhí)行的速度很慢,同時由于各字符串(國名)的長度不同,又增加了存儲管理的負擔。另一種較好的方法是使用指針數組,排序前后指針的指向情況見圖。把所有的字符串存放在一個數組中,把這些字符數組的首地址放在一個指針數組中,當需要交換兩個字符串時,只須交換指針數組相應兩元素的內容(地址)即可,而不必交換字符串本身。下圖為排序前后示意圖:12/19/202238程序設計基礎張杰敏5.7指針數組(2)指針數組主要用于處理多個字符串。字符串5.8*指針的指針指向指針的指針變量說明的一般語法形式為:
類型說明符**指針變量名;
例如:右圖首先定義說明了指針數組ps并作了初始化賦值。又說明了pps是一個指向指針的指針變量。在5次循環(huán)中,pps分別取得了ps[0],ps[1],ps[2],ps[3],ps[4]的地址值(如圖5-10所示)。再通過這些地址即可找到該字符串12/19/202239程序設計基礎張杰敏5.8*指針的指針指向指針的指針變量說明的一般語法形式為:5.9指針與多維數組(1)簡單指針變量引用多維數組的元素一般地,若需訪問二維數組a[n][m](n行m列)的某個元素a[i][j],計算該元素的相對位置公式為:i*m+j(i,j=0,1,2,...)相當于把二維數組轉化為一維數組來使用如:inta[3,4]={1,3,5,7,9,11,13,15,17,19,21,23};inta[12]={1,3,5,7,9,11,13,15,17,19,21,23};引用時使用a[1][3]和a[7]都是指第8號元素,這里即1512/19/202240程序設計基礎張杰敏5.9指針與多維數組(1)簡單指針變量引用多維數組的元素5.9指針與多維數組(2)通過指針數組引用多維數組元素對于二維數組可以為其中每個一維數組(每行),設一個指針。也可設一個指針數組,這個指針數組的每一個指針指向二維數組中的每個一維數組如:inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};int*pa[3]={a[0],a[1],a[2]};/*將3行的首地址賦給指針數組*/這時的pa[2]+1就指向a[2][1],即整型數1912/19/202241程序設計基礎張杰敏5.9指針與多維數組(2)通過指針數組引用多維數組元素15.9指針與多維數組(3)通過二維數組的數組名表達式引用多維數組的元素二維數組的數組名代表該數組的首地址,相當于一個指針常量二維數組中各一維數組名也是一個指針常量,代表一維數組的首地址。若a的首地址為2000,則右圖可以清楚底說明數組名作為指針常量的引用情況
已知某元素的指針后,可以用*運算符訪問該元素。只需在*()內寫入含數組名的地址表達式,就可以引用數組元素a[0]+1a[0]+2a[0]+3a[0]+1a[0]+2a[0]+312/19/202242程序設計基礎張杰敏5.9指針與多維數組(3)通過二維數組的數組名表達式引用5.9指針與多維數組(4)使用指向二維數組的指針變量二維數組指針變量說明的一般語法形式為:
類型說明符(*指針變量名)[長度]其中“類型說明符”為所指數組的數據類型?!?”表示其后的變量是指針類型。“長度”表示二維數組
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 修井工程考試試題及答案
- 山東航空考試試題及答案
- 中考監(jiān)考考試試題及答案
- 建筑實務考試題及答案
- 食管癌患者的臨床觀察
- 外科三基試題及答案
- 家電公司稅務風險防范辦法
- 班主任初中工作計劃總結
- 山東省寧陽四中2026屆化學高一上期末調研試題含解析
- 2020-2025年消防設施操作員之消防設備中級技能綜合檢測試卷B卷含答案
- 氧氣安全培訓課件
- 景區(qū)演藝演員管理制度
- 2024年甘肅省張家川回族自治縣教育局公開招聘試題含答案分析
- 親子活動熱狗活動方案
- 2025年黑龍江、吉林、遼寧、內蒙古高考生物真題試卷(解析版)
- 河南省鄭州市2023-2024學年高一下學期6月期末物理試題(解析版)
- 2024年中級統計師《統計基礎理論及相關知識》真題及答案解析
- 智能制造虛擬仿真實訓基地建設目標
- 《慢性乙肝治療策略》課件
- 施工用電合同協議書
- 國際制藥工程協會(ISPE)制藥工程基本指南水和蒸汽系統
評論
0/150
提交評論