c語言 指標陣列

2021-06-29 15:11:41 字數 2032 閱讀 6097

字元陣列:陣列長度和儲存長度不一樣,除了儲存內容外,字元陣列將'\0'作為字元陣列結束的標誌,儲存長度是陣列長度加一。

通過strlen()算出的陣列長度是內容長度,是儲存長度減一。sizeof求陣列的長度時:

char bbb[2]="12";

char ccc="12";

printf("bbb[2]: %d\n",sizeof(bbb));  //sizeof 求出是2

printf("ccc[2]: %d\n",sizeof(ccc));  //sizeof求出是3

指標陣列:

int *p[3]=

char *c[2]=;

char *c=;   //陣列在宣告的時候可以預設大小,但初始化必須是確定的內容

指標陣列:陣列的內容是指標。例如c[0]是指向字串「123」的指標,c[1]是指向字串"456"的指標。

指標陣列的使用:

#includeint main(),b=,*p[2];

p[0]=a;

p[1]=b;

*p[0]=12;//使a[0]=12

printf("%d ",*p[0]);//12

printf("%d ",++*p[0]);//13 訪問a[0],使a[0]自增

printf("%d ",*p[0]);//13

printf("%d ",*p[0]++);//13 訪問a[0],print a[0],隨後指標自增,p[0]指向a[1]

printf("%d ",*p[0]);//3

}

注意:++*s 表示對s指向的資料進行自增,s指向的位置不變;*s++ 表示訪問了s指向的資料後,指標s自增,s指向原來資料的下一條資料

用指標陣列表示多維陣列;

這樣不會有多為陣列那樣有嚴格的大小限制:

char *p=;

上面就是相當於多維陣列,在一維指標陣列中讓指標指向不同大小的字串

#include void f(char **p)

int main();

char **p = null;

p = a;

printf("%s  ",a[0]);//123

printf("%s  ",a[1]);//abc

printf("%s  \n",a[2]);//456

printf("%s  ",*p);//123

printf("%s  ",*p+1);//23

printf("%s  ",*p+2);//3

printf("%s  ",*p+3);//輸出空格

printf("%s  ",*p+4);//abc

printf("%s  ",*p+5);//bc

printf("%s  ",*p+6);//c

printf("%s  ",*p+7);//輸出空格

printf("%s \n ",*p+8);//456

printf("%s  ",*(p+1));//abc

printf("%s  ",*(p+2));//456

printf("%c  ",*(*(p+2)+2));//6

printf("%s  ",*(p+3));//overflow

printf("%s  ",*(p+4));//overflow

printf("\n\n\n");

f(p);

printf("%c\n", **p);//3    

printf("%s\n", *p); //3   

//printf("%s\n", **p); this is wrong

return 0; 

}

p是二維陣列,p指向a[0][0]的首位址,*p指向的是陣列a[0]的首位址,則*p+1指向的a[0]第二位位址,則輸出從第二位開始後面的字串,*p+2 同上

#includeint main()

C語言指標陣列和陣列指標

初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...

C語言指標陣列和陣列指標

初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...

C語言指標陣列和陣列指標

初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...