aaa 2

Programming Learning Diary

포인터배열

페이지 정보

작성일 19-11-22 16:23

본문

int main() { 


//배열 포인터 : 배열을 가리키는 포인터

//포인터 배열 : 포인터들이 배열


//int(*ptr)[4];  배열 포인터 선언

//int *ptr[4]; 포인터 배열 선언

//배열포인터는 배열들의 포인터들이고

//포인터 배열은 포인터로 이루어진 배열이라고 생각할 수 있다

int *ptr[4];

int a = 10;

int b = 20;

int c = 30;

int d = 40;


ptr[0] = &a;

ptr[1] = &b;

ptr[2] = &c;

ptr[3] = &d;

printf("%d %d %d %d\n", *ptr[0],*ptr[1],*ptr[2],*ptr[3]);

//포인터 배열에는 주소값이 들어가므로 &이 사용되는 것을 볼 수 있다.

//결과값 10 20 30 40



int arr[4] = { 1,2,3,4 };

int *ptr2[4];

for (int i = 0; i < 4; i++) {

ptr2[i] = &arr[i];

}

//포인터 배열에 arr배열의 주소값을 넣는 과정


for (int i = 0; i < 4; i++) {

printf("%d\n", *ptr2[i]);

}

//포인터 배열의 값을 출력

//결과값 1 2 3 4


char str[] = "Hello";

printf("%s\n",&str[0]);

//결과 값 :Hello

printf("%s\n", &str[1]);

//결과 값 :ello

printf("%s\n", &str[2]);

//결과 값:llo


char strings[3][10] = { "Hello","World","Doodel" };

for (int i = 0; i < 3;i++) {

printf("%s\n",&strings[i][0]);

}

char* p_str[3];


for (int i = 0; i < 3; i++) {

p_str[i]=strings[i];

printf("%s\n", p_str[i]);

}

//strings[i]는 해당 행의 첫번째 주소를 나타내므로 행렬로 출력이 가능하다.


//두 for문의 값이 같다

//결과값 HELLO

//       WORLD

//       Doodel


}


cf49d8fa93f81b0daa8b974b61da08da_1574407445_428.png