1. 배열
배열은 그릇을 만드는 것이다.
자료구조 중 가장 기초가 되는 것으로서, 사용할 메모리 크기를 고정해서 선언하는 것이다.
선언된 후에는 절대 크기를 변경할 수 없으며 선언된 메모리는 연속적으로 할당된다.
1) 1차원 배열 : 배열이 한 줄인 경우.
(예 1)
#include <stdio.h>
int main(void)
{
int i;
int Array[4] = {1,2,3,4};
for (i=0; i<4; ++i) //인덱스는 0부터 시작한다
{
printf("%d", Array[i]; //배열 인덱스 i번째의 값을 출력해라.
}
return 0;
}
(예 2) 입력을 받는 경우
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i, Answer;
int Array[4] = {0,};
for (i=0; i<4; ++i)
{
scanf("%d", &Answer);
Array[i] = Answer;
}
for (i=0; i<4; ++i)
{
printf("%d", Array[i]);
}
return 0;
}
2) 2차원 배열
예제를 외워써보면서 연습하려고 한다.
#include <stdio.h>
int main(void)
{
int i, j;
int Array2D[4][3]= {
{1,2,3},
{4,5,6},
{7,8,9},
{10.11.12}};
for (i=0; i<4; ++i)
{
printf("%2d ", Array2D[i][j]); //2차원 배열이니까 "%2d "
}
printf("\n");
return 0;
}
2차원 배열에 입력을 하는 경우
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i, j, input;
int Array2D[i][j] = {0,};
for (i=0; i<4; ++i)
{
for (j=0; j<3; ++j)
{
scanf("%d", &input);
Array2D[i][j] = input;
}
}
for (i=0; i<4;, ++i)
{
for (j=0; j<3; ++j)
{
printf("%2d ", Array2D[i][j]); //값을 "%2d" 형식으로 출력하라. 최소 2자리의 공간을 확보하고
} 정수를 우측 정렬하여 출력하라는 뜻.
printf("\n");
}
return 0;
}
i, j, input 변수명을 선언하고
Array2D[i][j] 배열명을 선언하고
i=0~3까지 증감식의 조건하에
j=0~2까지 증가할 때
변수 input에(&) "%d" 형태로 입력을 받아
Array2D[i][j]에 input을 대입한다
이후 같은 조건에서 해당 배열의 값을 "%2d"형식으로 출력한다.
이후 개행한다. (printf("\n")
return 0; 으로 함수를 종료한다.
2. 함수
프로그래밍 언어에서 함수란 코드 뭉치이다. 그래서 반복되는 코드 뭉치가 있다면 그걸 함수로 만들어서 재사용하면 편리하고 생산성이 높아진다. Printf()도 함수이고, main()도 함수이다.
내가 함수를 만들고 함수를 지정해 놓으면 나중에 편리하게 함수를 다시 호출해서 사용할 수 있다. 세부적인 기능을 구현하고자 할 때 사용해야 하므로 반드시 함수 기초문법은 암기해두고 제대로 공부할 마음가짐을 가져야 한다.
함수작성방법의 중요 샘플 코드. (필수 암기. 툭 치면 나올 정도로)
반환자료형 함수명(매개변수자료형 매개변수명)
return 반환값;
}
1) void는 자료형이다. void는 공백이니까 변수가 필요없다.
2) 함수명(인자값); : 함수를 호출한다. 인자값은 매개변수와 관련있다.
3)PrintOneStar() 함수
#include <stdio.h>
void PrintOneStar(void) //반환할 게 없으므로, 입력할 것도 없으므로(무조건 별 하나 출력) void 자료형, PrintOneStar() 함수 선언.
{
printf("*");
return;
} //함수의 정의
int main(void)
{
PrintOneStar(); //함수의 호출
return;
}
4)Add() 함수 1 : 두 수를 전달받아서 그 합을 출력하는 함수를 선언 및 정의하고 호출하는 소스코드 작성 연습.
#include <stdio.h>
void Add(int A, int B) //반환하라는 말이 없으면 void 자료형 사용. 두개의 인자값이 필요하므로 매개변수자료형 매개변수
{
printf("%d", A + B) //두 수를 전달받아서 합을 구하는 함수
return; //반환 안해도됨.
} //함수 정의
int main(void)
{
Add(2, 4); //함수명(인자값);
return 0;
}
5)Add() 함수 2 : 두 수를 전달받아서 그 합을 반환하는 함수를 선언 및 정의하고 호출하고, main() 함수에서는 반환 받은 값을 int형 변수에 저장했다가 출력하는 소스코드 작성하는 연습.
#include <stdio.h>
//반환자료명 함수명(매개변수자료형 매개변수명)
//두 수를 전달받아야 하므로 인자가 필요. 반환이 필요하므로 void말고 int사용
int Add(int A, int B)
{
int Result = A + B;
return A + B;
}
int main(void)
{
int Res;
Res = Add(2, 4);
printf("%d", Res);
return 0;
}
int형 변수 Res를 선언하고, Add() 함수를 호출한다.
int형 변수 Result 선언 후 A+B를 대입한다.
이후 Result 값을 반환하며 Add()함수를 종료한다.
Res에 Result 값을 대입한다.
Res를 %d 형식으로 출력한다.
인자값을 반환하며 메인함수를 종료한다.
오늘은 외울게 많다. 역시 깜지 다섯번씩 쓰고 자러갈 예정이다.
특히 천천히 읽는 습관을 더 잘 들여야 한다.
'게임 프로그래밍 공부 > 게임 개발을 위한 C++' 카테고리의 다른 글
| [C++학습] 3. Class 개념, 객체지향 프로그래밍 (0) | 2026.05.02 |
|---|---|
| [C++학습] 2. 포인터와 레퍼런스~클래스 (0) | 2026.05.01 |
| [C++학습] 1. 배열 함수, 조건문 작성 (0) | 2026.04.30 |
| [C언어] 2. 연산자 ~ 조건문 (0) | 2026.04.27 |
| [C언어] 1. 기본 ~ scanf()함수 (0) | 2026.04.25 |
