본문 바로가기
개발&코딩/C

C언어 배열과 포인터 심화내용 알아보기

by 우동이 2020. 9. 10.
300x250

 


C언어에서의 배열과 포인터는 서로 밀접한 관계의 개념이며

범용성이 커 아주 잘 쓰이는 기능입니다.

그러므로 초심자가 새로 배우는 입장에서는 어려울 수도 있습니다.


1.배열과 포인터 - 포인터로 배열 사용하기

#include <stdio.h>


int main()
{	
    int score[5]={1,2,3,4,5};
    int *ap;
    ap=score;
    
    for(int i=0; i<5; i++)
    	printf("%d\n", ap[i]);
    	
    printf("%d\n", *(&ap[0]));
    printf("%d\n", &ap[0]);
    
    return 0;
}
>>> 
1
2
3
4
5
1
6487536

 

score 배열의 크기는 5이며 int형 배열이므로 

5개의 int형 변수가 들어갈 수 있습니다.

 

또한 포인터 변수 ap는 배열 score를 참조합니다.

여기서 참조란 배열의 시작 주소를 가리키는 것을 의미합니다.

 

 


2. C언어 포인터 배열 예제1 -  배열의 평균값

#include <stdio.h>

int main()
{
    double avg;
    double score[]={10, 20, 30, 40, 50};
    double *dp;
    dp=score;
    
    for(int i=0; i<5; i++)
    {
		avg+=dp[i];	
    }    	
    
    for(int j=0; j<5; j++)
    	printf("%d.입력된 배열의 값 : %lf\n",j+1, *(dp+j));
    
    printf("배열의 평균값 : %.2lf\n", avg/5);
    return 0;
}
>>> 
1.입력된 배열의 값 : 10.000000
2.입력된 배열의 값 : 20.000000
3.입력된 배열의 값 : 30.000000
4.입력된 배열의 값 : 40.000000
5.입력된 배열의 값 : 50.000000
배열의 평균값 : 30.00

 

score 배열에 5개의 값을 초기화하였고

이를 포인터 dp로 참조합니다.

 

이후 초기화되어있는 값을 포인터 변수로 배열을 참조해 출력했고

그 평균값을 출력합니다.

 


C언어 포인터 배열 예제 2 / 배열의 값 거꾸로 출력하기

#include <stdio.h>

int main()
{
    double score[]={10, 20, 30, 40, 50};
    double *dp;
    dp=score;
    
    for(int j=4; j>=0; j--)
    	printf("%d.입력된 배열의 값 : %lf\n",j+1, *(dp+j));
    
    return 0;
}

>>>
5.입력된 배열의 값 : 50.000000
4.입력된 배열의 값 : 40.000000
3.입력된 배열의 값 : 30.000000
2.입력된 배열의 값 : 20.000000
1.입력된 배열의 값 : 10.000000

 

역시 배열을 포인터로 참조하여 진행되는 예제입니다.

초기화되어있는 배열의 값을 포인터로 참조하여 거꾸로 출력하는 간단한 예제입니다.

 

배열과 포인터에서는 참조라는 개념이 중요합니다.

포인터는 가리키는 것 즉 주소를 가리키는 것을 참조라고 지칭합니다.

그래서 포인터에 대해 배우게 된다면 당장 코딩을 해보는 것도 중요하지만

개념에 대해 자세히 잘 숙지하는 게 중요합니다.

300x250

댓글