프로그래밍 언어/C 24

[자료형(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) : 함수 호출 시에 전달되는 인수의 값을 저장할 변수들을 명시 함수의 인수(매개변수)는 ..

C 제어문 총정리 (조건문, 반복문, 기타 제어문)

A. 제어문 1. 제어문 a. 제어문이란? C 프로그램은 절차적 프로그램(procedural program) 또는 명령형 프로그램(Imperative program) 따라서 C 프로그램은 수많은 명령문이 처음부터 끝까지 순서대로 실행되는데 🌟 이때 원하는 결과를 얻기 위해서는 순차적 흐름을 제어하는 명령문을 제어문이라고 함 b. 제어문의 특징 중괄호{} 에 둘러싸있음 (블록(block)이라고 칭함) c. 제어문의 종류 1) 조건문 2) 반복문 2. 조건문 🌟 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문 if ( / else if / else) 문, 삼항 연산자에 의한 조건문, switch문이 있음 a. if ( / else if / else) 문 🌟 if(else if) 문은 조..

C 연산자 총정리 -2 (비교, 논리, 비트, 기타 등)

5. 비교 연산자 a. 비교 연산자란? 🌟 피연산자 사이의 상대적인 크기를 판단하는 연산자 b. 비교 연산의 특징 두 개의 피연산자를 가지는 이항 연산자 피연산자들의 결합 방향 : ➡ c. 비교 연산자의 종류 증감 연산자 설명 == 왼쪽의 값과 오른쪽 값이 같으면 1 != 왼쪽 값과 오른쪽 값이 같지 않으면 1 > 왼쪽 값이 오른쪽 값보다 크면 1 >= 왼쪽 값이 오른쪽 값보다 크거나 같으면 1 HTML 삽입 미리보기할 수 없는 소스 int num01 = 3; int num02 = 7; printf("== 연산자에 의한 결괏값은 %d입니다.\n", num01 == num02); printf(" 포인터 *연산자 , & 참조연산자 이해 포인터 * 연산자 * 는 산술 연산자에서는 곱셈을 의미하지만 포인터에서는..

C 연산자 총정리 -1 (산술, 대입, 증감)

A. 연산자(operator) 1. 연산자 a. 연산자란? 🌟 프로그램의 산술식이나 연산식을 표현하고 처리하기 위해 제공되는 다양한 기호 b. 연산자의 종류 1) 산술 연산자 2) 대입 연산자 3) 증감 연산자 4) 비교 연산자 5) 논리 연산자 6) 비트 연산자 7) 기타 연산자 c. 연산자의 우선순위(operator precedence)와 결합 방향(associativity) 1) 연산자의 우선순위 수식 내에 여러 연산자가 함께 등장할 때, 어느 연산자가 먼저 처리될 것인가를 결정하는 것 2) 연산자의 결합 방향 수식 내에 우선순위가 같은 연산자가 둘 이상 있을 때, 먼저 어느 연산을 수행할 것인가를 결정 3) 연산자의 우선순위표 (참조표) 우선순위가 빠른 연산자가 가장 먼저 실행 같은 우선순위를 가..