C指標-求陣列、指標指向字串長度
阿新 • • 發佈:2021-02-10
C指標-求陣列長度
指標變數儲存的實際是記憶體地址的值,而地址則是一個整數(十六進位制)。
char s[10];
char * p;
gets(s); //接收字串
p = s;
//陣列長度
int index;
for( index=0; s[index]!='\0'; index++ );
printf("The string length is %d\n",index);
陣列的結束符是以 \0 作為結束符的,在進行索引位移的時候只需要判斷當前字元是否等於 \0 就可以了。
同樣的指標變數p指向了字串s所以結束判斷是一樣的,需要注意的是指標位移的時候指標指向的是索引+位移距離的下標:
char a[] = {'1','2','3','4','5','6'};
char * p;
p = a;
puts(p);//輸出: 123456 p指向索引0
p++;
puts(a); //輸出:123456 指向索引1
puts(p);//輸出: 23456
在輸出指標變數指向的內容時,是從指向的索引一直到結束
//指標求字串長度
while(*p!='\0'){
printf("%s\t",p);
p++;
}
printf("\nThe string length is %d",p-s);
而指標在做一些運算時(加減、比較),參與運算的是兩個指標的地址,陣列名就相當於指標變數,只是陣列可以通過索引來訪問,當p指向陣列結束符時,再讓兩者進行減法運算就得到了字串的長度。