[C] 포인터 접근 방법으로 int 배열 읽어오기

Haeun Noh·2022년 11월 21일
0

C언어_예제

목록 보기
15/19

1121


int형 배열을 순회하는 iterate함수 작성해보기

void iterate(int* arr, int arr_size)

조건

  1. 포인터 접근 방식을 사용하기
  2. iterate함수를 만들 때 값을 읽을 변수와 변수의 사이즈를 전달하기

소스 코드

#include <stdio.h>

void iterate(int* arr, int arr_size) {//arr_size를 받아오는 이유는 선언된 장소에서만 사이즈를 알 수 있기 때문
	for (int i = 0; i < arr_size; i++) {
		//arr을 포인터 접근방법으로 값 출력하기
		printf("%d ", *(arr + i));//arr에 i를 더한 것은 변수의 타입의 바이트를 더한 것과 같기 때문에 arr+i를 *로 묶어주면 주소값을 나타낼 수 있는 것이다. 다시 말해 arr의 값들을 하나씩 순차적으로 다 읽을 수 있는 것이다.
	}

}

int main(void) {
	int arr[] = { 1,2,3,4,5 };//사이즈가 5인 arr변수에 1, 2,3,4,5값을 넣는다.
	iterate(arr, 5);//값을 읽어올 포인터 변수와 포인터 변수의 사이즈를 iterate함수에 전달한다.

	return 0;
}

소스 풀이

#include <stdio.h>

void iterate(int* arr, int arr_size) {
	for (int i = 0; i < arr_size; i++) {
		printf("%d ", *(arr + i));
	}

}

int main(void) {
	int arr[] = { 1,2,3,4,5 };
	iterate(arr, 5);

	return 0;
}

사이즈가 5인 arr변수에 1,2,3,4,5값을 넣는다.
값을 읽어올 포인터 변수와 포인터 변수의 사이즈를 iterate함수에 전달한다.
여기서 arr_size를 받아오는 이유는 선언된 장소에서만 사이즈를 알 수 있기 때문이다.

arr을 포인터 접근방법으로 값을 출력하기 위한 for문을 작성한다.
arri를 더한 것은 변수의 타입의 바이트를 더한 것과 같다. 다시 말해 int형 포인터(배열) 변수에 1을 증가시키면 4를 증가시킨 것과 같다는 뜻이다.

arr+i*로 묶어주면 주소값을 나타낼 수 있는 것이다. 다시 말해 arr의 값들을 하나씩 순차적으로 다 읽을 수 있는 것이다.


실행 결과

1 2 3 4 5


profile
기록의 힘을 믿는 개발자, 노하은입니다!

0개의 댓글