전체 글 177

[C/C++] 09 - 01 구조체 기초

목차 구조체 구조체 자료형 정의 및 변수 선언 방법 typedef: 자료형 별명 만들기 typeof와 구조체 자료형 구조체 변수의 초기화 구조체의 메모리 구조 배열에 대한 Assignment 연산 1. 구조체 : 여러 자료형의 연속된 변수들로 구성된 집합체 ✓ 구조체는 왜 쓰는가? → 여러 자료를 개별적으로 다루기 보다 한 곳에 모아서 관리하면 편하니깐! ✓ C의 구조체 구조 하나 이상의 멤버(Member)/필드(Field) 변수 들로 구성 각 멤버/필드 변수들은 서로 다른 자료형을 가질 수 있다 ※ 구조체는 일종의 자료형(Type)이다. 구조체 선언은 새로운 자료형을 정의하는 것으로 변호 선언과는 다르다 새로운 자료형의 이름은 "struct name" 이다 2. 구조체 자료형 정의 및 변수 선언 방법 ..

Language Study/C 2022.11.23

[C/C++] 08 - 02 배열, 문자열과 포인터

목차 포인터 변수에 대한 산술 (+,-) 연산 배열의 이름과 주소 배열의 이름과 주소 배열 첨자 연산과 포인터 문자열과 포인터 배열 매개 변수와 포인터 배열 매개 변수 함수 호출에서의 배열 변경 문자열 입출력 함수 :gets()와 puts() 1. 포인터 변수에 대한 산술 (+,-) 연산 주소 값은 정수 값과 유사하게 보인다 포인터 변수에 대해 정수와 유사하게 +, -, ++, -- 연산을 할 수 있다. 그러나 정수와의 그 연산결과가 다르다. 포인터 변수가 참조하는 자료형의 크기에 따라 달라진다. 2. 배열의 이름과 주소 ① 배열의 이름과 주소 배열의 이름은 배열의 시작 주소를 나타내는 포인터/주소 상수이다. 그렇기 때문에 '값'을 변화시키려는 연산은 모두 불가능. 배열 '이름'은 포인터이므로 + 연산이..

Language Study/C 2022.11.21

[C/C++] 08 - 01 POINTER 기초

목차 1. 메모리 구조와 변수 2. 포인터의 개념 3. *(Pointer Dereference) 연산자 4. 포인터 변수 & 주소 값 5. 포인터 활용 ①메모리 구조와 변수 Memory 메모리 셀이 연속해 나열되어 있는 구조 각 메모리 셀은 식별을 위한 주소를 가지며 셀 내에 이진 값을 저장할 수 있다 Variable 값을 저장하는 메모리 공간 Identifier, Type, Value, Memory Size, Memory Adress, Scope, Lifetime 등을 속성으로 가진다. ② 포인터의 개념 포인터(Pointer)란 지시자, 가리키는 자를 의미한다. 즉, 포인터의 Value값은 대상의 '주소'이다. 그렇다면 대상의 주소를 어떻게 가져오는가? → 연산자 &를 활용하는 것이다. 포인터 연산자에..

Language Study/C 2022.11.09

[C/C++] 07 - 03 함수와 Modular Programming

✓ Structured Programming 모든 프로그램은 본질적으로 순차(Sequence), 선택(Selection), 반복(Repetition) 이라는 3가지의 제어 구조(Control Structure)의 조합으로 구성된다. 코드에서 이러한 제어 구조가 명확히 드러날 때 코드 작성과 이해가 쉬워진다. 실제 C 언어에서는 선택을 위한 if-else, switch, 반복을 위한 for, while, do-while등의 제어 구조문을 제공한다. 그러나 기계어에서는 제어 흐름 변경을 위한 명령어로 단순 비교(simple test)와 Jump(=GoTo)를 이용한 구문 이동만을 제공한다. 조기 프로그래밍 언어도 단순 비교와 GOTO만을 제공하여 3가지 제어 구조가 잘 드러나지 않는 복잡한 코드가 양산되었다..

Language Study/C 2022.11.02

[C/C++] 07 - 02 STANDARD LIBRARY 함수의사용

✓ C Standard Library 표준 입출력을 위해 사용한 printf()와 scanf()역시 함수다. 이 함수의 Prototype/Declaration은 stdio.h에 있다. C Standard Libaray란? C언어에서 기본적으로 사용할 수 있는 서비스 함수이다. Reference를 통해 어떤 함수가 있는지, 어떻게 이용하는지 알 수 있다. #include #include #include int main(void){ int i,ranval; double uranval; srand(time(0)); for(i=0; i

Language Study/C 2022.11.02

[C/C++] 07 - 01 함수와변수,함수인자심화학습

함수와 변수, 함수 인자 심화학습 ✓ Comma Seperated Values 다양한 자료형과 연산 파트에서 CSV 형식의 문자열에서 값을 추출하여 연산을 수행하는 문제를 다루었는데 코드는 아래와 같았다. 근데 모두 음이 아닌 정수로 가정했다. CSV 문자열에서 값을 하나씩 추출하는 기능을 개별 함수로 분리해보자. #include int main(void) { int i; // index int num=0, sum=0; // number char str[]="123,456,789"; for(i=0;str[i];i++) { if (str[i] == ',') { // new number sum += num; num = 0; } else { // a digit num = num*10 + (str[i]-'0')..

Language Study/C 2022.10.25

[C/C++] 04 - 함수 기초 - 함수 선언과 변수 유효 범위

Index 함수 선언과 변수 유효 범위 Function Definition vs. Function Prototype Interface & Implementation Variable Scope Local Variable vs Global Variable 1.Function Definition vs. Function Prototype ① Function Prototype? Function Definition에서 Body 부분을 제거하고 Header 부분만 남긴 형태 ; (semicolon)을 덧붙임에 유의 Function Prototype, Funcion Declaration, Function Interface 등의 이름으로 불림 함수 호출에 필요한 정보는 모두 알려주지만 함수가 어떻게 구현/실현되는지를 보..

Language Study/C 2022.10.03

[C/C++] 04 - 함수 기초 - 함수의 개념과 호출 구조, 재귀 호출

Index 함수의 개념과 호출 구조, 재귀 호출 함수의 개념 Function Definition void Function / Procedure Function Call Structure : Call Number / Call Depth Recursive Call 1. 함수의 개념 ✓ 함수(Function)? 함수: 상자 수; 상자에 수를 넣으면 수가 나옴 입력 값을 넣으면 출력값이 나오는 (Black) Box ✓ C 언어와 함수 C 언어는 크고 복잡한 일을 여러 개의 함수로 나눠 해결하는 것을 핵심 프로그램 원리로 한다 함수는 C 소스 코드의 핵심 구성 요소이며 소스 코드 규모와 관련 없이 하나 이상의 함수 정의(Funciton)으로 구성된다 2. Function Definition Header와 Body..

Language Study/C 2022.10.03

[C/C++] 03 - 제어 구조 기초 - 반복문과 배열 기초

Index 반복문과배열(Array) 기초 while statements for statements Nested Loop Infinite Loop Array Array and Loop statements 1. while statement 조건 수식(cond_expression)이 참인 동안에 loop_statement를 계속 수행 ✓ while문의 동작 순서 2. for statement 조건 수식(cond_expression)이 참인 동안에 loop_statement를 계속 수행 for statement: for (init)clause; cond_expression; iteration_expression) Loop_statement; init_clause: 초기화 구문 cond_expression: 조건..

Language Study/C 2022.10.03