Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어에서 포인터와 배열의 개념을 설명합니다.

<시간/>

포인터 및 배열

연속 메모리 위치는 컴파일러에 의해 배열의 모든 요소에 할당됩니다.

기본 주소는 배열의 첫 번째 요소의 위치입니다.

예를 들어, int a [5] ={10, 20,30,40,50};

5개의 요소는 다음과 같이 저장됩니다 -

C 언어에서 포인터와 배열의 개념을 설명합니다.

'p'가 정수 포인터로 선언되면 배열 'a'는 다음 할당으로 가리킬 수 있습니다. -

p=a
or
p=&a[0];

'a'의 각 값은 p++를 사용하여 한 요소에서 다른 요소로 이동하여 액세스합니다. 포인터가 증가하면 포인터가 가리키는 데이터 유형의 크기만큼 값이 증가합니다. 이 길이를 "축척 계수"라고 합니다.

포인터 p와 변수 a 사이의 관계는 다음과 같습니다. -

P   = &a[0] = 1000
P+1 = &a[1] = 1004
P+2 = &a[2] = 1008
P+3 = &a[3] = 1012
P+4 = &a[4] = 1016

요소의 주소는 해당 인덱스와 데이터 유형의 스케일 팩터를 사용하여 계산됩니다.

예시

a[3]의 주소=기본 주소+(3*int의 배율 인수)

=1000+(3*4)

=1000+12

=1012

*(p+3) gives the value of a[3]
a[i] = *(p+i)

프로그램

#include<stdio.h>
main (){
   int a[5];
   int *p,i;
   clrscr ();
   printf (”Enter 5 lements”);
   for (i=0; i<5; i++)
      scanf (“%d”, &a[i]);
   p = &a[0];
   printf (“Elements of the array are”);
   for (i=0; i<5; i++)
      printf(“%d”, *(p+i));
   getch();
}

출력

Enter 5 elements : 10 20 30 40 50
Elements of the array are : 10 20 30 40 50