C언어 15

[C언어] 15. 파일 입출력

15. 파일 입출력 - 프로그램이 꺼진 이후에도 데이터를 저장하기 위해서는 파일 입출력이 필요하다. - 게임을 껐다 킬 때마다 다시 처음부터 캐릭터를 키워야 한다면 매우 억울할 것이다. ※ 파일이 실질적으로 저장되는 위치는? - SSD (RAM인 CPU같은 경우는 휘발성 있게 저장한다는 특징이 있다. 즉 컴퓨터를 껐다 키면 데이터가 사라진다는 것이다. 그래서 일반적으로 바탕화면에 있는 파일들은 SSD나 하드디스크 같은 보조기억장치에 저장이 되고 그것을 더블 클릭 해서 실행을 하면 그 프로그램이 프로세스로 변환되면서 RAM에 들어가서 구동을 하게 되는 것이다. CPU는 그 RAM에서 하나하나씩 코드를 읽어서 실행을 시켜준다. 따라서, 실질적으로 파일이 영구적으로 저장이 되는 위치라고 한다면 SSD라고 할 ..

[C언어] 14. 구조체

14. 구조체 - 여러 개의 변수를 묶어 하나의 객체를 표현하고자 할 때 구조체를 사용 할 수 있다. - 캐틱터, 몬스터, 학생, 좌표 등 다양한 “객체”를 모두 프로그래밍 언어를 이용해 표현 할 수 있다. struct 구조체명{ 자료형1 변수명 1; 자료형2 변수명 2; …… } (예제1)한 명의 학생에 대한 정보를 담고 있는 구조체를 만들어보자. #include struct Student { char studentId[10]; char name[10]; int grade; char major[100]; }; (해설) 학생에 대한 정보를 담고 있는 구조체를 만들어 본것이다. 학생의 학번, 이름, 학년, 전공 등을 자료형이 무엇인지 판단해서 잘 담을 수 가 있다. - 기본적으로 구조체의 변수에 접근할 때..

[C언어] 13. 함수 포인터

13. 함수 포인터 - C언어에서는 함수의 이름을 이용해 특정한 함수를 호출한다. - 함수 이름은 메모리 주소값을 반환한다.(배열도 주소값 반환하는 것처럼) (예제1) 함수이름이 메모리주소를 반환하는 예 #include void function() { printf("i make a my function."); } int main(void) { printf("%d\n",function); system("pause"); return 0; } (해설) 실행 시켜보면 내가 직접 만든 함수들도 함수이름을 출력하도록 하면 각각 자기의 주소값을 가지고 있는 걸 확인 할 수 있다. - 함수 포인터는 특정한 함수의 “반환 자료형”을 지정하는 방식으로 선언 할 수 있다. - 함수 포인터를 이용하면 “형태가 같은” 서로 “..

[C언어] 12. 동적 메모리 할당

12. 동적 메모리 할당 - 일반적으로 C언어에서 배열의 경우 “사전에” 적절한 크기만큼 할당해주어야 한다. - “프로그램 실행 도중 언제나” 우리가 원하는 만큼만 메모리 할당해서 사용하고자 한다면 동적 메모리 할당을 사용한다. - “동적”이라는 말의 의미는 “프로그램 실행 도중에”라는 의미이다. - C언어에서는 malloc()함수를 이용해 원하는 만큼의 메모리 공간을 확보할 수 있다. - malloc()함수는 메모리 할당에 성공하면 주소를 반환하고, 그렇지 않으면 NULL을 반환한다. (그런 후 포인터 변수를 이용해 해당 주소에 접근해 데이터를 처리하는 등의 작업을 수행할 수 있다.) - malloc()함수는 라이브러리에 정의되어 있다. malloc(할당할 바이트 크기); - 동적 메모리 할당을 수행할..

[C언어] 11. 다차원 배열과 포인터 배열

11. 다차원 배열과 포인터 배열 - 2차원 배열은 굉장히 많은 목적으로 사용된다 - 행렬 데이터를 표현할 때, 그래프 알고리즘을 처리할 때, 다수의 실생활 데이터를 처리 할 때 등 이름 영어성적 수학성적 국어성적 홍길동 85 97 79 유관순 100 89 98 이순신 99 77 99 장보고 89 70 78 신립 95 98 98 ▶ 흔히 우리가 보는 “표 구조”가 “2차원 배열”과 흡사하다. - 2차원 배열은 1차원 배열이 중첩되었다는 의미로 [대괄호]를 두 번 연속하여 쓴다. [ ][ ] 「자료형 배열이름 [행][열]={{값,값,값,…},{값,값,값,…},{값,값,값,…}∙∙∙}」 ex) int a[10][10]; (10x10행렬) - 2차원 배열 또한 0인덱스부터 시작한다. ex) a[0][2] : ..

반응형