1. 程式人生 > 其它 >C指標-求陣列、指標指向字串長度

C指標-求陣列、指標指向字串長度

技術標籤:c語言指標陣列字串

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指向陣列結束符時,再讓兩者進行減法運算就得到了字串的長度。

在這裡插入圖片描述