// Visual Studio 2022, x86(32비트) 기준
// Array_and_Pointer
// 배열과 포인터의 관계에 대해서 좀 더 깊이 알아보기
#include "pch.h"
#include <stdio.h> // printf 함수를 사용하기 위해
#define MAX_COUNT 6 // 배열에 들어갈 원소 개수
// 여기서 char a_data[]는 배열이 아니라 포인터임
// 배열은 자기 자신을 더할 수 없음(주소를 바꿀 수 없으니까)
// char a_data[] => char *ap_data 이렇게도 표현할 수 있음
void ShowResult(char a_data[])
{
int sum = 0, times = 1, max = -128, min = 127;
// 포인터를 먼저 선언해 보자면
// char 자료형 배열의 포인터 변수 선언(배열은 컴파일에서 자체적으로 메모리 공간을 할당하기에 주소의 개념을 가짐)
char* p = a_data;
// 배열의 마지막 주소 + 1 만큼 반복문을 돌릴 수 있도록 조건식을 세울 변수 설정
char* p_limit = p + MAX_COUNT;
while (p < p_limit)
{
sum += *p;
times *= *p;
if (max < *p)
max = *p;
if (min > *p)
min = *p;
++p;
}
printf("합계: %d\n곱값: %d\n최댓값: %d\n최솟값: %d\n", sum, times, max, min);
}
int main()
{
char data[MAX_COUNT] = { 6,3,8,4,1,5 };
// 배열에 들어 있는 합계, 곱한 값, 최댓값을 구해보자
ShowResult(data);
// 프로그램 종료
return 0;
}
본 게시글은 금배씨 영상 중 "배열과 포인터" 를 참조하여 작성되었습니다.