본문 바로가기

Program Language95

c++ 기초(스택과 힙) 이글은 "전문가를 위한 c++(개정4판)"을 학습한 내용을 직접 실습해보며 정리한 Review용 글입니다. 스택과 힙 c++ 프로그램이 사용하는 메모리는 크게 스택(stack) 영역과 힙(heap) 영역으로 나뉩니다. 물론 세부적으로 코드와 데이터 영역이 추가적으로 있지만 여기서는 다루지 않겠습니다. 스택은 말 뜻처럼 아래에서 위로 데이터를 차곡차곡 쌓아가는 모습입니다.(반대로 꺼낼때도 위에서부터 꺼내야합니다.) 스택은 주로 함수와 관련된 매개 변수와 지역변수가 저장되기 때문에 이를 별도로 스택 프레임(stack frame)이라고 부릅니다. 제일 위에 놓이는 스택 프레임은 현재의 스코프를 표현하며 주로 현재 실행중인 함수를 가리킵니다. 즉 현재 실행 중인 함수에 선언된 변수는 모두 최상단 스택 프레임에 .. 2023. 1. 11.
Part1. C# 첫발 내딛기(18. OverflowException 과 Checked 키워드) 이번 포스팅에서는 이전 포스팅에서 언급한 예외 중 OverflowException과 이것을 보기 위한 Checked 키워드에 대해서 정리했습니다. OverflowException과 Checked 키워드 오버플로우는 자료형이 갖는 최대값을 넘어섰을 때 발생합니다. 예를 들어 정수의 최댓값은 32비트가 표현할 수 있는 최대 수인 2,147,483,647입니다. 만약 이 값을 넘어서는 값이 정수 변수에 할당이 된다면 오버플로우가 발생하게 됩니다. 다음 예제는 오버플로우를 발생시키는 예제입니다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namesp.. 2023. 1. 11.
Part1. C# 첫발 내딛기(17. DivideByZeroException과 try~catch문) 이번 포스팅은 0으로 나눌 때 발생하는 Exception과 이를 처리하는 try~catch문에 대해 간단히 정리했습니다. DivideByZeroException과 try~catch문 산술연산에서 흔히하는 실수가 0으로 나누는 것입니다. 이때 발생하는 에러가 DivideByZeroException입니다. 다음 예제를 보면 0으로 나눌 시 발생하는 예외를 확인할 수 있습니다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Operators { internal class Program { static void Main(string[].. 2023. 1. 10.
C++ 기초(이니셜라이저 리스트) 이글은 "전문가를 위한 c++(개정4판)"을 학습한 내용을 직접 실습해보며 정리한 Review용 글입니다. 이니셜라이저 리스트(initializer_list) 함수의 매개변수로 동일 타입의 여러 인수를 받는 함수를 쉽게 작성할 수 있습니다. initializer_list는 템플릿이기 때문에 타입지정은 꺽쇠로 묶어서 지정해야합니다. 다음은 이니셜라이저를 매개변수로 갖는 함수의 예입니다. #include #include using namespace std; int makeSum(initializer_list lst) { int total = 0; for (int value : lst) { total += value; } return total; } int main() { int a = makeSum({ 1,.. 2023. 1. 10.
Part1. C# 첫발 내딛기(16. 산술 연산자) 이번 포스팅은 연산자 중에 기본이라고 할 수 있는 산술 연산자에 대해 정리했습니다. 산술 연산자 산술연산자는 4개의 사칙연산자(+, -, *, /)와 나머지(%) 연산자로 총 5가지가 있습니다. 산술연산은 피연산자의 자료형에 따라 계산 결과값의 자료형도 결정됩니다. 특히 주의해야 하는 것은 '정수 / 정수'의 결과는 정수라는 점입니다. 예를 들어 1/2의 결과는 0.5가 아니고 0이 됩니다. '정수 / 실수'의 결과는 실수입니다. C/C++과 달리 % 연산자는 실수형에도 사용할 수 있습니다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; name.. 2023. 1. 9.
Part1. C# 첫발 내딛기(15. C# 연산자와 식) 이번 포스팅은 간단하게 C#에서 사용하는 연산자의 종류와 사용법에 대해 정리했습니다. C#의 연산자와 식 프로그래밍 언어를 배우고자 한다면 그 언어에서 사용하는 연산자의 종류는 반드시 정리하고 넘어가야합니다. C#의 연산자를 종류별로 정리하면 다음과 같습니다. 연산자 분류 연산자 산술 연산자 +, -, *, /, % 논리 연산자 !, ~, &&, || 비트 연산자 &, |, ^, 증감 연산자 ++, -- 관계 연산자 ==, !=, , = 문자열 연결 연산자 + 대입 및 복합 연산자 =, +=, -=, *=, /=, %=, =, &=, |=, ^= 멤버 연산자 . 인덱싱 연산자 [] 형변환 연산자 () 조건 연산자 ?: 포인터 및 주소 연산자 *, ->, & Linq 연산자 => c#에서는 원칙적으로 포인.. 2023. 1. 9.