1. 程式人生 > >關於陣列指標,指標陣列和字串陣列的一些問題

關於陣列指標,指標陣列和字串陣列的一些問題

陣列指標,本質是一個指標,是一個指向陣列的指標。

指標陣列,本質是一個數組,是一個其中每個元素都是指標的陣列。

陣列指標的定義:int (*p)[5] ;

指標陣列的定義:int *p[5] (或int *(p[5]));

陣列指標的用法:

#include <stdio.h>
void main(void)
{
	//陣列指標的用法
	int (*a1)[10];
	int b[10] = {1,2,3,4,5,6,7,8,9,0};
	a1 = &b; 
	printf("b = %d\n", *a1[0]);
}


指標陣列的用法:

#include <stdio.h>
void main(void)
{
	//指標陣列的用法
	int *a2[10];
	int b[10] = {1,2,3,4,5,6,7,8,9,0};
	a2[0] = &b[0];
	printf("b = %d\n", *(a2[0]));
}


此外,若想定義一個字串陣列來存放字串並想用指標訪問它,可如下所示:

#include <stdio.h>
void main(void)
{
	char a[10][10] = {"a","b","c","d","e","f","g","h","i","j"};    
	char *p[10];
	int i = 0;
	for(i=0;i<10;i++)
	{
		p[i] = a[i];
	} 
	for(i=0;i<10;i++)
	{
		printf("a = %s\n", p[i]);
	}  
}
其中a[10][10]中,第一個10是字串個數,第二個10是字串長度。