기초

포인터, 배열

알쿠미 2015. 12. 19. 01:11

배열 초기화 방법

1
2
int  imsi[3= {0};// 1차원 배열 초기화
int  imsi[2][3= {{1,2,3}, {이부분은 0으로 초기화}}; //2차원 배열 초기화
cs


1
2
3
4
5
6
7
int    imsi[3= { 537};
int    *imsip;
 
imsip = imsi; 
 
1. 배열명은 주소를 뜻한다.
2. 배열명은 배열의 첫번째 배열요소의 주소를 뜻한다.
cs

따라서 imsi == &imsi[0] imsip는 imsi[0]를 가리키고 있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
    int    imsi[3= { 537};
    int    *imsip;
 
    imsip = imsi;
 
    int a = *(imsi + 1);
    int b = *(imsip + 1);
 
    cout<<a<<endl;
    cout<<b<<endl;
cs

배열을 가리키는 포인터에 +1을 하면 다음 값을 가리킨다.
다음의 출력 값은 3이 2번 출력된다.

imsip++ 은 되지만 imsi++은 되지 않는다.(imsi는 변경할 수 없기 때문)
배열명에는 주소를 할당할 수 없다. 배열명은 포인터 변수가 아니라 배열명 자체일 뿐이다.