char二维数组_C语言指针与数组详解
指針與數組
指針可以與變量結合,也可以與數組結合使用。指針數組和數組指針是兩個截然不同的概念,指針數組是一種數組,該數組存放的是一組變量的地址。數組指針是一個指針,表示該指針是指向數組的指針。
1.指向數組元素的指針
int a[5]={1,2,3,4,5};
int *p=a; //int *p=&a[0];
如上代碼,指針變量p指向了a數組的首元素,其方法可有兩種,int *p=a或int *p=&a[0];
注意:指針變量的類型應與指針所指向的變量的類型一致,如下代碼會報錯
與整型、浮點型數據一樣,指針也可以進行算術運算,但含義卻不同。當一個指針加一或減一并不是使指針增加1或減少一,而是使指針所指向的位置向后或向前移動了一個位置。例如執行a=a+3,如果一個整型占用4個字節,則相加后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.指針數組
指針數組其實也是一個數組,只是數組中的元素是指針類型的數據。換句話說,指針數組中的每一個元素都是一個指針變量。
定義指針數組的方式如下:
由于[ ]運算符優先級比*高,p優先與[ ]結合,從而形成一個數組,然后再與*結合,表示該數組是指針類型的,每個數組元素是一個指向整型的變量 。
指針數組常常用于儲存一些長度不等的字符串數據,有的讀者可能會問,為什么不存放在二維數組中?因為如將這些字符串若放在二維數組中,就需要定義一個能容納最長字符串的數組長度,這樣就會浪費一些空間。下面看我的代碼,上面有注釋。
運行結果:
總結
以上是生活随笔為你收集整理的char二维数组_C语言指针与数组详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为OJ平台——完美数
- 下一篇: 这才是电脑广告弹窗彻底关闭的正确方式电脑