char二维数组_C语言指针与数组详解
指針與數(shù)組
指針可以與變量結合,也可以與數(shù)組結合使用。指針數(shù)組和數(shù)組指針是兩個截然不同的概念,指針數(shù)組是一種數(shù)組,該數(shù)組存放的是一組變量的地址。數(shù)組指針是一個指針,表示該指針是指向數(shù)組的指針。
1.指向數(shù)組元素的指針
int a[5]={1,2,3,4,5};
int *p=a; //int *p=&a[0];
如上代碼,指針變量p指向了a數(shù)組的首元素,其方法可有兩種,int *p=a或int *p=&a[0];
注意:指針變量的類型應與指針所指向的變量的類型一致,如下代碼會報錯
與整型、浮點型數(shù)據(jù)一樣,指針也可以進行算術運算,但含義卻不同。當一個指針加一或減一并不是使指針增加1或減少一,而是使指針所指向的位置向后或向前移動了一個位置。例如執(zhí)行a=a+3,如果一個整型占用4個字節(jié),則相加后a=2000+4*3=2012(這里假設指針a的初值為2000)。同樣指針也可進行自加自減運算。
也可以用一個指針變量減去另一個指針變量,具體看如下代碼和結果:
int *p,*q,b; int shuzu[6]={0,1,2,3,4,5}; p=shuzu,q=&shuzu[3]; printf("p和q兩指針的地址分別為:%d %d",&p,&q); printf("\np和q兩指針的值為(即所指向元素的地址為):%d %d",p,q); b=p-q; printf("\nb的值為:%d ",b); //b=兩指針值相減的差除以4結果為:
2.指針數(shù)組
指針數(shù)組其實也是一個數(shù)組,只是數(shù)組中的元素是指針類型的數(shù)據(jù)。換句話說,指針數(shù)組中的每一個元素都是一個指針變量。
定義指針數(shù)組的方式如下:
由于[ ]運算符優(yōu)先級比*高,p優(yōu)先與[ ]結合,從而形成一個數(shù)組,然后再與*結合,表示該數(shù)組是指針類型的,每個數(shù)組元素是一個指向整型的變量 。
指針數(shù)組常常用于儲存一些長度不等的字符串數(shù)據(jù),有的讀者可能會問,為什么不存放在二維數(shù)組中?因為如將這些字符串若放在二維數(shù)組中,就需要定義一個能容納最長字符串的數(shù)組長度,這樣就會浪費一些空間。下面看我的代碼,上面有注釋。
運行結果:
總結
以上是生活随笔為你收集整理的char二维数组_C语言指针与数组详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为OJ平台——完美数
- 下一篇: 可以改动的option组件_uni-ap