[C언어] 포인터 상수, 배열, 변수에 대한 개념 정리.
Study/C, C+, C++

[C언어] 포인터 상수, 배열, 변수에 대한 개념 정리.

728x90
반응형

포인터 상수 에서 배열 이란?

 

- 배열명이 포인터 상수에 해당하며 배열명의 시작 주소는 변경할 수 없다.

 

포인터 변수?

 

- 포인터 변경 가능.

- 메모리 공간이 할당되어야만 사용할 수 있음.

1. 다른 변수의 주소를 연결하여 사용.

2. 메모리 공간을 할당 받아 그 주소를 이용하는 방법도 있음.

 

 

포인터 배열과 문자형 2차원 배열의 차이?

 

- 포인터 배열이란 여러 개의 포인터 변수를 배열로 사용하는 것,

- 포인터 배열은 문자형 포인터 배열을 사용할 때 유용하게 사용된다.

 

포인터를 이용한 간단한 2차원 배열 덧셈을 하는 코드이다 ▼

 

#include <stdio.h>
#define ROW 3
#define COL 3 // 세로x가로 를 매크로로 지정
int main()
{
	int x [ROW][COL] = {1,2,3,4,5,6,7,8,9};
    int y [ROw][COL] = {9,8,7,6,5,4,3,2,1);
    int z [ROW][COL];
    int i,j,*x1,*y1,*z1;
    x1=&x[0][0]; // x1=(int *)x; 와 같다는 뜻
    y1=(int *)y; //2차원배열을 1차원 배열로 적용하기 위함
    z1=(int *)z; //(int *)캐스트 필요.
    for (i=0; i<ROW*COL; i++, x1++, y1++, z1++){
    	*z1=*x1+*y1;
        }
    z1 = (int *)z;
    for (i=0;i<ROW;i++){
    	for (j=0;j<COL;j++){
        	printf("%3d", *z1++);
           printf("\n");
        }
    }
}

 

728x90
반응형