🎮 컴퓨터 과학 216

[문자와 문자열] 입출력 함수 총정리 2 : 문자열

C. 문자열 1. 문자열(string) a. 문자열 상수(string constant) 큰따옴표("")를 사용해 표현되는 문자열을 문자열 상수(string constant)라고 함 이름이 없고, 내용을 변경할 수 없어서 상수라고 표현함 b. 문자열 🌟 메모리에 저장된 일련의 연속된 문자(character)들의 집합 👉 문자형 배열로 표현, 이 배열이 곧 문자열 변수가 됨 💥 문자형 배열이기 때문에 기본 타입에 포함되지 않음 = 연산자 사용 불가능 HTML 삽입 미리보기할 수 없는 소스 char str01[] = "This is a string."; // 크기를 지정하지 않은 문자열 변수 선언 char str02[7] = "string"; // 크기를 지정한 문자열 변수 선언 printf("이것은 문자열 ..

[문자와 문자열] 입출력 함수 총정리 1 : 스트림과 문자

A. 기본적인 입출력 1. 스트림 (stream) a. 스트림이란? 🌟 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름 = 운영체제에 의해 생성되는 가상의 연결 고리 C언어는 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림을 통해 다룸 b. 스트림 생성 방식 콘솔 장치 : 프로그램 실행 시 자동 실행, 자동 소멸 파일 연결 스트림 : 직접 생성 c. 표준 스트림 (standard stream) 표준 스트림 설명 stdin 표준 입력 스트림 stdout 표준 출력 스트림 stderr 표준 오류 스트림 d. EOF(End Of File) 🌟 파일 끝에 도달했을 때 반환되는 값, -1 ✔ 운영체제마다 다르지만 C언어에서는 운영체제 상관없이 -1을 반환함 💙 파일뿐만 아니라 키보드를 통한 입력시에도 입..

[메모리의 관리] 메모리의 기초 총정리

A. 메모리의 기초 프로그램이 실행 되기 위해서 먼저 프로그램이 메모리에 로드 되어야 함 또한 프로그램 속 변수를 저장할 메모리도 필요함 따라서 운영체제는 프로그램 실행을 위해 아래와 같은 메모리 공간을 제공 1. 메모리의 구조 a. 코드 영역 🌟 실행할 프로그램의 코드가 저장되는 영역 (텍스트 영역) CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리 b. 데이터 영역 🌟 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역 프로그램 시작 = 할당 / 프로그램 종료 = 소멸 c. 힙 영역 🌟 프로그래머가 할당( = 동적 할당) / 해제 (자바에서는 가비지 컬렉터가 자동 해제) 하는 메모리 공간 클래스, 클로저가 이 부분에 해당, 런타임 시에 크기가 결정 낮은 주소에서 높은 주소의 방향..

[자료형(data type)] C 파생형 공용체와 열거체

더보기 D. 공용체와 열거체 1. 공용체 a. 공용체란? 🌟 union 키워드를 사용하여 선언. 구조체와 거의 동일하지만 모든 멤버 변수가 하나의 메모리 공간을 공유 🎨 도식화 모든 멤버 변수가 같은 메모리를 공유해 한 번에 하나의 멤버 변수밖에 사용할 수 없음 순서가 규칙적이지 않고, 미리 알 수 없는 다양한 타입의 데이터를 저장할 수 있도록 설계된 타입 크기가 가장 큰 멤버 변수의 크기로 메모리를 할당받음 👉 따라서 공용체 배열을 사용하면, 같은 크기로 구성된 배열 요소에 다양한 크기의 데이터를 저장할 수 있음 HTML 삽입 미리보기할 수 없는 소스 typedef union { unsigned char a; unsigned short b; unsigned int c; } SHAREDATA; int m..

[자료형(data type)] C 구조체 배열과 구조체 포인터, 구조체 활용

더보기 B. 구조체 배열과 구조체 포인터 1. 구조체와 배열 a. 구조체 배열 선언 및 초기화 배열의 요소에는 제한이 없어서 구조체도 가능함 구조체 배열을 선언하는 방법은 일반 배열 선언방법과 같고, 접근 방법도 동일함 HTML 삽입 미리보기할 수 없는 소스 struct book text_book[3] =//2차원 배열의 초기화 방법과 똑같은 방법으로 초기화 { {"국어", "홍길동", 15000}, {"영어", "이순신", 18000}, {"수학1", "강감찬", 10000} }; puts("각 교과서의 이름은 다음과 같습니다."); printf("%s, %s, %s\n", text_book[0].title, text_book[1].title, text_book[2].title); //멤버 연산자(.)..

[자료형(data type)] C 파생형 구조체 기본

더보기 A. 구조체의 기본 1. 구조체 a. 구조체란? 🌟 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입 = 사용자 정의 자료형이라고 부름 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있음 또한 함수 리턴값으로 구조체를 사용하면 여러 개의 데이터를 한 번에 반환할 수 있음 (함수는 원래 하나의 값만 가능) 배열이 같은 타입의 변수 집합이라면, 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것이때 구조체를 구성하는 변수를 구조체의 맴버 또는 맴버변수라고 함 b. 구조체의 정의 HTML 삽입 미리보기할 수 없는 소스 struct 구조체이름//struct 키워드 : 구조체의 시작을 알림 { 멤버변수1의타입 멤버변수1의이름; 멤버변수2의타입 멤버변수2..

[자료형(data type)] C 파생형 포인터와 배열

B. 파생형 포인터와 배열 1. 포인터와 배열 a. 포인터와 배열의 관계 배열의 이름은 그 값을 변경할 수 없는 상수라는 점을 제외하면 포인터와 같음 따라서 배열의 이름 = 포인터 상수 💙 포인터 상수? ⦁ 포인터 상수(constant pointer) : 포인터 변수가 가리키고 있는 주소 값을 변경할 수 없는 포인터 ⦁ 상수 포인터(pointer to constant) : 상수를 가르키는 포인터를 의미 HTML 삽입 미리보기할 수 없는 소스 #include int main(void) { int arr[3] = {10, 20, 30};// 배열 선언 int* ptr_arr = arr;// 포인터에 배열의 이름을 대입함 printf("배열의 이름을 이용하여 배열 요소에 접근 : %d %d %d\n", arr..

[자료형(data type)] C 파생형 포인터의 기본

더보기 A. 포인터 1. 포인터의 개념 a. 주소값의 이해 데이터의 주소값이란 해당 데이터가 저장된 메모리의 시작 주소를 의미 C언어에서는 주소값을 1바이트 크기의 메모리 공간으로 나누어 표현 b. 포인터란? 🌟 메모리의 주소값을 저장하는 변수 포인터 변수라고도 부름 💥 WARNING 포인터 연산자와 헷갈리면 안됨! 포인터 연산자는 포인터 변수에 있는 데이터를 가져오는 기호! 👉 포인터 연산자 공부하기 (기타) 연산자 총정리 -2 (비교, 논리, 비트, 기타 등) 5. 비교 연산자 a. 비교 연산자란? 🌟 피연산자 사이의 상대적인 크기를 판단하는 연산자 b. 비교 연산의 특징 두 개의 피연산자를 가지는 이항 연산자 피연산자들의 결합 방향 : ➡ c. 비교 연산 monamu.tistory.com c. 포인..

[자료형(data type)] C 파생형 배열 총정리

더보기 A. 배열 1. 배열 a. 배열이란? 🌟 같은 타입의 변수들로 이루어진 유한 집합 배열을 구성하는 각각의 값을 배열 요소라고 하며, 위치를 가리키는 숫자는 인덱스라고 함 인덱스는 0부터 시작 (양수만 가능) 같은 종류의 데이터를 많이 다뤄야 하는 경우 사용하는 가장 기본적인 자료구조 b. 배열의 종류 1차원 ~ n차원 배열까지 사용할 수 있지만, 현실적으로 2차원까지 사용 c. 배열의 특징 배열의 길이를 선언할 때에는 반드시 상수를 사용 배열 요소의 인덱스는 언제나 0부터 시작 C 컴파일러는 배열의 길이를 전혀 신경쓰지 않음 = 개발자가 직접 신경써야 함 HTML 삽입 미리보기할 수 없는 소스 #include int main(void) { int i; int sum = 0; int grade[3]..

[자료형(data type)] C 파생형 함수 총정리

더보기 A. 함수 1. 함수 개요 a. 함수란? 🌟 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합 b. 함수의 종류 1) 표준 함수 2) 사용자 정의 함수 c. 함수를 사용하는 이유 1) 반복적인 프로그래밍을 피할 수 있기 때문 2) 모듈화로 가독성이 좋아짐 3) 손쉽게 유지보수가 가능 d. 함수의 규칙 함수의 규칙정확히 명시된 규칙은 없지만, 하나의 기능을 하나의 함수로 만들어야 함 e. 함수의 문법 🤍 문법 설명 ✔ 반환 자료형 : 함수가 모든 작업을 마치고 반환하는 데이터의 타입을 명시 ✔ 함수 이름 : 함수를 호출하기 위한 이름을 명시 ✔ 매개변수 목록(parameters) : 함수 호출 시에 전달되는 인수의 값을 저장할 변수들을 명시 함수의 인수(매개변수)는 ..