[C언어] 배열과 포인터(2)
·
🛠️Backend/⚙️C
✅ 1. 포인터의 개념(1) 변수와 포인터의 차이위와 같이 일반 변수 선언 및 초기화를 거치면, 메모리에 변수 공간을 할당을 한 뒤 그 공간에 데이터를 넣게 된다.이후, 해당 일반 변수를 포인터(&) 로 가리키게 되면, 해당 주소값을 참조하게 된다.참조된 주소값을 포인터 변수에 넣게 되면, 포인터 변수가 하나 할당이 되며, 내부에는 일반 변수의 주소값을 넣게 된다.그리고 포인터 변수에는 일반 변수의 주소값을 가지고 있기 때문에 포인터 변수에 데이터를 넣게 되면 해당 주소값에 맞게 일반 변수에 데이터를 넣어주게 된다.즉, 정리하면 포인터 변수는 주소값을 저장하는 변수로 볼 수 있음.포인터 변수에 주소값을 넣기 위해서는 포인터(&) 를 통해서 주소값을 가져와 넣을 수 있음.[ 요약 및 정리 ]포인터(&) 로..
[C언어] 배열과 포인터(1)
·
🛠️Backend/⚙️C
✅ 1. 배열의 개념(1) 배열(array) 이란?여러 개의 동일한 자료형의 값을 연속적인 메모리 공간에 저장하고, 이를 하나의 이름으로 관리할 수 있도록 만든 변수임.각각의 배열 요소는 0번부터 시작해 차례로 부여된 번호(인덱스)를 이용하여 액세스 함배열의 차원: 배열의 요소가 나열되는 구조이며, 1차원, 2차원, 3차원 ... 등이 있음.위와 같이 자료의 최댓값을 구하는 예시가 있다고 가정하면, 변수만 가지고 데이터를 저장 할 경우 최댓값을 찾을 때 위와 같이 하나씩 전체를 비교해야 한다. 이러한 과정은 매우 비효율적임. 그래서 배열을 사용함.✅ 2. 1차원 배열(1) 1차원 배열 - 선언위와 같이 동일한 자료형의 배열명을 통해 독립적으로 개수를 지정해 배열의 크기를 지정해서 만들 수 있음.int a..
[C언어] 함수와 기억 클래스(2)
·
🛠️Backend/⚙️C
✅ 1. 매개변수를 통한 자료 전달(1) 함수의 호출과 자료 전달함수 호출: 처리에 필요한 자료를 피호출 함수의 매개변수에 전달함 -> sum(10, 20); 복귀: 처리 결괏값을 함수 호출식의 값으로 반환함 -> return z;(2) 값에 의한 자료 전달C 언어의 기본적인 자료 전달 방식이다.C 언어는 함수를 호출시 매개변수 전달은 실 매개변수의 값을 형식 매개변수에 복사하는 방식으로 동작함.이유는, 실 매개변수와 형식 매개변수의 공간이 다르기 때문에 값만 복사해서 넣어주는 것임. 즉, 주소값이 달라서임.즉, 변수간의 주소값이 다른데, 서로 영향을 받지 않도록 하기 위해서 복사를 하는 것임.(3) 참조에 의한 자료 전달#include void modify(int *ptr) { *ptr = 99;..
[C언어] 함수와 기억 클래스(1)
·
🛠️Backend/⚙️C
✅ 1. 함수의 개념(1) 함수(function) 란?함수란, 특정한 작업을 수행하도록 설계된 독립적인 코드 블록을 의미한다.함수에 코드 블록에 정의된 코드를 사용하기 위해서는 함수를 호출하여 사용할 수 있음.매개변수를 통해 함수에 데이터를 전달 할 수 있음.작업을 완료하면 호출한 곳으로 복귀 즉, return 을 하게 됨.복귀할 때 결과값을 반환할 수 있음.C 프로그램은 함수를 기본 단위로 하여 구성이 됨.(2) 함수의 특성[ 함수의 장점 ]크고 복잡한 프로그램을 작은 크기의 의미 있는 작업 단위로 분할하여 구성할 수 있음.간결하고 이해하기 쉬우며 유지 관리가 쉬워질 수 있음.반복 사용되는 코드의 중복을 최소화 할 수 있음.잘 설계된 함수는 다른 응용에서 재사용할 수 있음.[ 함수의 단점 ]함수 호출과..
[자료구조] 7강 - 트리
·
🎓방송통신대학교/🔢자료구조
✅ 1. 트리의 개념(1) 트리의 정의트리는 계급적인 특성을 가지는 계층화를 통해 검색을 편리하게 하기 위한 자료구조로 볼 수 있음.✅ 2. 트리의 표현 방법(1) 트리의 구성노드: 트리의 항목/트리에 저장되는 데이터의 묶음이다. 쉽게말해, 위 이미지에서 A, B, C... 각각을 의미 할 수 있음.부모노드: 상하 계층구조 및 직접연결 된 노드 구조에서 해당 노드의 상위계층을 부모 노드라고 함.자식노드: 부모노드와 반대로 특정 노드의 하위계층을 자식노드라고 함.( 특징은 부모노드와 자식노드는 직접 연결된 구조에서만 가능하므로 부모는 반드시 노드 1개가 될 수 있음. )루트노드: 트리의 최상휘 노드로 부모가 없는 노드로 볼 수 있다.서브트리: 부모 노드를 삭제하면 생기는 트리들을 의미한다. 쉽게말해, B의..
[C언어] 선택 제어문과 반복 제어문
·
🛠️Backend/⚙️C
✅ 1. C 언어의 흐름 제어(1) C 언어의 기본 - 문장 흐름[ 문장(statement) ]선언이나 실행을 지시하는 표현의 기본 단위선언문: 자료형, 변수 등을 선언하는 문장이다. 예: int a;실행문: 동작을 수행하도록 지시하는 문장이다. 예: a += 10;실행문은 함수 안에만 작성할 수 있음.모든 문장은 세미콜론(;)으로 끝을 표시함실행문은 나열된 순서에 따라 순차적으로 실행됨흐름 제어문에 의해 순차적 흐름을 바꿀 수 있음.(1) C 언어의 기본 - 흐름 제어 구조프로그램을 작성할 때 일반적으로 사용하는 것이 위에서부터 차례대로 순차구조, 선택구조, 반복구조 이다.이 세가지가 대표적으로 쓰이는 흐름 제어 구조이다.✅ 2. 선택 제어문(1) 선택 제어문이란?지정된 조건에 따라 특정 위치로 이동하..
[자료구조] 6강 - 연결 리스트의 응용
·
🎓방송통신대학교/🔢자료구조
✅ 1. 연결 리스트의 변형(1) 단순 연결 리스트의 문제점단순 연결 리스트는 하나의 링크만 있고, 각각의 노드의 링크는 후행 노드만을 가리키는 구조이다.즉, 특정 노드의 후행 노드는 쉽게 접근할 수 있지만, 특정 노드의 선행 노드에 대한 접근은 헤드 노드부터 재검색을 해야 하는 문제가 있음. 이것을 해결하기 위해 연결 리스트를 변형한 형태가 만들어짐.연결 리스트 변형은 위이미지와 같이 이중 연결 리스트, 단순 원형 연결 리스트가 될 수 있음.(2) 이중 연결 리스트란?기존 단순 연결 리스트는 후행 노드만을 가리키는 link 만 있음.이중 연결 리스트는 두 개의 link 를 가지고 있으며 각각 선행 노드, 후행 노드의 링크를 가지고 있게 됨.결과적으로 후행 노드를 가리킬 수 있어, 소스 코드가 간단해지고..
[C언어] 입출력 함수와 연산자(2)
·
🛠️Backend/⚙️C
✅ 1. 산술 연산자(1) 연산자의 개념(2) 산술 연산자사칙연산을 포함한 산술 연산을 수행하는 연산자를 의미한다.피연산자가 1개 일땐 단항 연산자, 2개 이상일 땐 이항 연산자로 구분됨.[ 이항 연산자 ]연산자간 덧셈으로 자료형의 범위를 벗어나는 오버플로가 일어나지 않도록 주의해야 함나눗셈의 제수 즉, x 나누기 0 는 불가능 함.정수형에만 사용이 가능한 연산자이다.나머지의 정의는 정수의 소수점 아래를 버리는 방식으로 됨.[ 이항 연산자 예시 ][ 단항 연산자 ]✅ 2. 관계 연산자와 논리 연산자(1) 불 값의 표현(2) 관계 연산자[ 관계 연산자의 사용 예 ]a 가 4 인 경우 a > 2 에 대한 값으로는 참 값인 1 이 들어가게 된다. 반대로 거짓일 경우 0 이 들어간다.[ 정리 ]관계 연산자는 대..
[컴퓨터과학 개론] 4강 - 자료구조(2)
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 트리데이터 간의 관계를 나타내는 비선형 자료구조이다. ( 1:N 관계이며, 일직선이 아님 )노드(node)라고 불리는 부분과 노드를 연결하는 가지(branch, edge)로 구분이 된다.노드 사이에는 계층적인 관계성을 갖고 있고 이것은 레벨0, 1, 2, 3 등이 될 수 있음.(1) 트리 용어 정의노드(node): 정보 항목을 의미하며 A, B, C, D ... 등이 모두 노드가 될 수 있음.루트(root): 빈 트리가 아닌 경우에 맨 꼭대기에 있는 하나의 노드를 의미함. ( A 부분에 해당함 )차수(degree): 각 노드에 있는 가지의 수를 의미함. ( 그 노드가 가지고 있는 자식 노드(하위 노드)의 개수로 봐야 함. )(2) 잎 노드 (단말 노드) & 내부 노드 (비단말 노드)[ 잎 노드 ..
[컴퓨터과학 개론] 3강 - 자료구조(1)
·
🎓방송통신대학교/💻컴퓨터과학 개론
✅ 1. 기본 개념(1) 자료구조의 개념[ 추상화 ]공통적인 개념을 이용하여 같은 종류의 다양한 객체를 정의하는 것을 의미함.다양한 객체의 예시는 버스가 될 수 있고, 버스에는 광역, 고속, 시외 등 다양한 종류의 버스가 존재하지만 공통적인 개념을 뽑아서 이미지화를 통해 추상화를 시킬 수 있음. 즉, "버스 타러 가자" 만으로도 이해가 충분할 수 있음.예를 들면 수식, 프로그램 언어 등이 있음[ 자료(데이터) 추상화 ]다양한 객체를 컴퓨터에서 표현하고 활용하기 위해 필요한 데이터의 구조에 대해서 공통의 특징만 뽑아 정의 한 것을 의미함.자료구조는 종류가 다양하다. 즉, 배열만 봐도 여러 배열이 존재 할 수 있기 때문에 배열 자체의 공통적인 특징을 뽑아서 자료 를 추상화 할 수 있음. 이유는 의사소통을 하..