Programming/C

포인터 배열 정리

한우콩 2020. 2. 18. 11:15

1. 변수 선언

// 배열 포인터 : 배열을 가리키는 포인터 
// 포인터 배열 : 포인터들이 배열 
#include <stdio.h>

int main() {
	int a = 10;
	int b = 20;
	int c = 30;
	int d = 40;

	int* ptr[4];

	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]);
}

2. 배열 선언

// 배열 포인터 : 배열을 가리키는 포인터 
// 포인터 배열 : 포인터들이 배열 
#include <stdio.h>

int main() {
	int arr[4] = { 1, 2, 3, 4 };
	int* ptr[4];

	for (int i = 0; i < 4; i++) {
		ptr[i] = &arr[i];
	}

	for (int i = 0; i < 4; i++) {
		printf("%d ", *ptr[i]);
	}
	printf("\n");
}

3. 문자열

#include <stdio.h>

int main() {
	char strings[3][10] = { "Hello", "World", "Doodle" };
	char* p_str[3];

	for (int i = 0; i < 3; i++) {
		p_str[i] = strings[i];
	}

	for (int i = 0; i < 3; i++) {
		printf("%s\n", p_str[i]); // p_str[i] == &strings[i][0]
	}
}

각 행의 첫번째 칸을 가리키는 포인터를 사용하면 Null문자가 나오기 전까지 출력