
*, &, Right-Left Ruleswitch case:while 무한루프return 0; 복수 사용자료형* 변수명 = 메모리주소값; 포인터 선언 및 초기화* 히면 역참조 연산자랑 심히 헷갈린다int* (*WTF)(void); = WTF is pointer to (괄호 안이라 * 먼저 읽기) function () expecting void returning pointer* to int자료형* 변수명 = &변수명; 앞 변수는 포인터, 뒤는 실제 변수자료형 배열명[배열크기] 형식이라 배열명 자체도 변수다. 시작 메모리 주소를 배열 이름으로 받아낼 수 있다.*는 포인터를 뜻하기도 하지만 역참조 연산자 이기도 하다.// Main.c
#include <stdio.h>
int main(void)
{
int X = 10, Y = 20;
int* PtrToX = &X;
printf("%d\n", *PtrToX);
*PtrToX = *PtrToX * 2;
PtrToX = &Y;
printf("%d\n", *PtrToX);
return 0;
}

define NULL((void*)0) 무슨 의미지?malloc() 과 free(). 반납 꼭 필수!!int* Nums = (int*)malloc(10 * sizeof(int)); 이런 식으로 쓴다.Nums[i] 하면 malloc()을 통해 할당된 주소들 9번지까지 방문가능Human[30] 만들어 사실상 생기부 만들기 할 때. like Human.Nametypedef 별명 만들기 -> C++ 에선 레퍼런스인가?if{} 는 일회성이고, for은 결국 끝이 존재하는 반복문이니 while을 사용하는 건 확실한데, 그 조건에 뭘 넣어야할지 고민이었는데 사실 "항상 참" 인 조건을 아무거나 넣으면 되는 것이었다. 그래서 true 를 그냥 넣고 기본 과제 내용을 만들었고, 이후엔 플레이어 스테이터스를 상승시키는 행동을 할 때마다 차감되는 actionCount 를 생성해서 10회 행동할 수 있는 메뉴를 만들었다.switch case 를 통해 입력갑 int selectMenu 값을 각 액션들과 연결시켰다.최종 틀은 이와 같다.
while (actionCount > 0) // action Count가 남아있을 동안만 루프 돌아가게
{
switch (selectMenu)
{
case 1:
break;
case 2:
........
case 0:
std::cout << "Game Ended! Goodbye, World!" << endl;
return 0;
default:
std::cout << "Invalid Number! Try Again" << endl;
std::cin >> selectMenu;
break;
}
}
원하는 만큼 루프를, 무한대까지 굴리고 싶으면 이런 방식으로 형성하면 될 듯 하다.
while은 입력값 범위을 정하고 싶을 때도 사용 가능std::cin >> enemyStatus[0];
while (enemyStatus[0] <= 100)
{
std::cout << "Invalid Number. Set your enemy's HP: (Must be over 100)" << endl;
std::cin >> enemyStatus[0];
}
return 0; 는 main 함수의 끝, 프로그램의 끝을 알리고 싶을 때 넣는 코드인데, 여태까진 main함수의 끝에 반사적으로 넣고 끝냈었지만 switch case 0: 에서 보듯 "게임 종료 조건" 을 알릴 때도 사용할 수 있다.return 0; 역시 두 번 이상 쓸 수 있다. 해당 과제 내용의 경우 actionCount <=0 일 때도 return 0;, 0 입력 시에도 return 0; 을 스위치문 내부에 넣어서 거기서 종료되게 했다.setStatus) 모든 인자를 포인터로 받을 이유는 없다. 메뉴 표시해주는 함수 void mainMenu(int status[], int* p_HPPotion, int* p_MPPotion, int* p_level, int* p_actionCount) 에선 사실 인자 수정이 없는데 너무 과하게 포인터를 쓴 감이 있어서 반성system("cls") 인터넷 검색으로 찾은 터미널 초기화시키는 기능인데... 필요한 게 있으면 찾아쓰자. 인터넷은 위대하다.