배열은 데이터를 연속된 메모리에 저장하므로 포인터와 같이 사용되는 경우가 많다.
배열명은 배열의 시작번지를 갖는 포인터 상수이다.

포인터와 배열
int a[5]={10,20,30,40,50};
int *aa;
aa=a; /* aa=&a[0]와 같은 의미를 갖는다. */


a[0]=*aa=aa[0];
a[1]=*(aa+1)=aa[1];
a[2]=*(aa+2)=aa[2];
a[3]=*(aa+3)=aa[3];
a[4]=*(aa+4)=aa[4];

예제 3)
#include<stdio.h>
main(){
int data[5]={10,20,30,40,50};
int i;
int *p;
p=data;
for(i=0;i<5;i++)
printf("data[%d]=%d\n",i,*(p+i));
}

2 차원 배열에서의 포인터 사용


예제 4)
#include<stdio.h>
main(){
int ss[4][3]={{10,10,10},
{20,20,20},
{30,30,30},
{40,40,40}};
int i,sum=0,*p;
p=&ss[0][0];
for(i=0;i<12;i++)
sum+=*(p+i);
printf("total=%d",sum);

출처http://www.it-bank.or.kr/prom/c_main.htm
Posted by 김윤석

카테고리

놀며즐기고 공부하기 (685)
 IT 정보 (653)
 재테크 (0)
 엔터테이먼트 (11)
 인터넷마케팅 (0)
 사이트 추천 (1)
사이드바 열기