1. 程式人生 > >一級指標、二級指標與字串

一級指標、二級指標與字串

c語言中沒有字串型別,通過字元陣列來模擬字串,字串以‘\0’結束。
一、一級指標:
字元陣列的定義:
1.指定長度:char buf[100]={‘a’,‘b’}; 或char buf[100]=“ab”;
如果初始化的字元個數大於陣列長度,將會出現編譯錯誤。
2.char buf[]={‘a’,‘b’}; 或char buf[]=“ab”;
求長度:strlen(陣列名)求的是字串長度,比如strlen(buf)=2,它只能求字串的長度。
sizeof(陣列名)求的是該陣列佔記憶體的大小,sizeof(buf)=100 單位為位元組,它還可以求其他型別的長度。
通過陣列下標和指標來操作字串
char *p=buf;
p=buf; (p+1)=buf[1]=

(buf+1) 編譯器在翻譯時會把陣列型別翻譯成指標的型別。buf是一個常量指標,它指向陣列的首地址。
buf和p的區別:buf直接指向陣列的首地址,是一塊記憶體塊的別名;而指標是儲存陣列的首地址, 去指向陣列。
二、二級指標
第一種:陣列的每一個元素都是指標。
char *array[]={“aaa”,“bbb”,“ccc”};它是指標陣列,即很多個指標組成的陣列。
第二種:char array[10][30]={“aaa”,“bbb”,“ccc”};
第三種:char *p=(char **)malloc(sizeof(char *)*5);
for(int i=0;i<5;i++)
{
p[i]=(char *)malloc(sizeof(char)*100;
}用一個指標指向一個指標陣列,這個指標陣列指向對應的記憶體塊。