목록C언어/독하게 시작하는 C 프로그래밍 (21)
문타쿠, 공부하다.

if문과 스코프 if 분기문 실행의 절차적 흐름을 제어하는 제어문 조건식의 결과에 따라 절차상 수행할 구문이 달라질 수 있는 제어문 삼항 연산자와 논리적으로 유사 Scope 여러 개의 구문을 하나로 묶는 역할 -> { 중괄호 } [필수 실습 문제] 최댓값 구하기 - if문 버전 #include int main(void) { int num1 = 0; int max = 0; printf("세 개의 정수 입력 ㄱ\n"); printf(">> "); scanf_s("%d", &num1); max = num1; printf(">> "); scanf_s("%d", &num1); if (num1 > max) max = num1; printf(">> "); scanf_s("%d", &num1); if (num1 > m..

연산자 기본 이론 연산자 연산자는 CPU 연산과 직결되는 문법 연산자 자체는 하나의 항 여러 항을 모아 연산식 작성 연산자와 피연산자로 구성 피연산자가 하나면 단항 연산자, 두 개 항이면 이항 연산자, 세 개 항이면 삼항 연산자 연산자 종류 산술 연산자 대입 연산자 형 변환 연산자 단항 증/감 연산자 비트 연산자 관계 연산자, 논리 연산자, 조건 연산자 sizeof 연산자 연산자 우선 순위 연산자 결합성 우선순위가 같은 경우 어떤 것을 먼저 연산할 것인지 나타내는 것 산술 연산자 대표적인 이항 연산자: +, -, *, /, % 연산의 결과로 임시결과 발생 정수 간 나눗셈의 결과는 반드시 정수가 되며 소수점 이하는 절사 이형자료 연산과 형승격 산술 연산과 형승격 임시결과는 피연산자 표현범위 이상의 표현이 ..

콘솔(Console)이란 무엇일까? 콘솔(Console) 텍스트 기반의 사용자 인터페이스 컴퓨터에서 텍스트로 명령을 입력하고 출력을 확인하는 환경을 의미 콘솔은 여러 OS에서 사용될 수 있으며, 사용자와 컴퓨터 간의 상호작용을 텍스트 형식으로 제공한다. cmd Windows 운영체제에서 사용하는 CLI(Command Line Interface) 프로그램 Console과 CLI CLI기반 HCI(Human Computer Interface)는 키보드 입력으로 구현 키보드 입력 시 그 값은 메모리의 I/O Buffer에 연속적으로 저장 I/O Buffer에서 한 글자 단위로 처리 인터럽트 컴퓨터 = CPU + RAM + 주변기기 CPU와 주변기기들은 서로 상호작용/통신을 하며 정보를 주고받는다. 이때 CPU..

사용 가능한 문자와 예약어 사용 가능한 문자 ASCII 코드 기준 문자 중 일부 a~z, A~Z, 0~9 특수 문자 White space(공백 문자) Escape sequence(\n) 한글이 입력은 되지만 후회하기 싫다면 절대 사용ㄴㄴ C언어의 예약어 특정 목적을 위해 이미 예약되어 있는 단어나 식별자 변수 이름(식별자) 작성 규칙 영문 대/소문자, '_', 숫자 가능 첫 글자는 숫자 사용 x 이름 중간에 공백 문자 사용 x 예약어 사용 x 너무 긴 이름이나, 의미를 알 수 없는 이름은 사용하지 말자. 항, 식, 구문, 함수 문자(피연산자, 변수나 상수)로 항 기술 소괄호를 이용해 여러 항을 한 항으로 묶음 항과 연산자가 모여 식 완성 식에 대한 평가 식이 모여 구문 완성 여러 구문을 중괄호로 묶을 수..

Win11기반 Visual Studio Community 2022 개발환경 설정 Visual Studio를 실행한 후 솔루션 탐색기 창이 오른쪽에 있다면 '개발 설정(V)'이 '일반'으로 된 것이므로 'Visual C++'로 설정을 바꿔줘야 한다. 도구(T) > 설정 가져오기 및 내보내기(I)... > 모두 다시 설정(R) > 아니요, 다시 설정하여 현재 설정을 덮어 씁니다(O) > 'Visual C++' 선택 개발자라면 개발과 관련된 글꼴 사용하기 글꼴은 Consolas, 크기는 11 추천 주요 단축키와 첫 번째 예제 작성 (feat. Hello world!) F7 프로젝트 빌드 Ctrl + F5 실행 F5 디버그 모드 실행 Shift + F5 디버그 모드 강제 중단 F9 중단점 설정 F10 디버그 모..

저급어와 고급어 0과 1같이 CPU가 이해하는 Machine Code/기계어는 저급어, C언어처럼 사람이 쓰는게 고급어 컴파일러 언어와 인터프리터 언어 컴파일러 고급어 소스코드를 기계어로 번역하는 프로그램 전체 소스코드를 모두 기계어로 변환한 후 실행 => 번역 성능 최적화가 용이하여 다수 언어가 채택 C, C++ 등등 인터프리터 고급어 소스코드를 직접 실행하는 프로그램이나 환경을 의미 보통 한번에 한 줄 단위로 실행 => 통역 성능(특히 속도)면에서 컴파일러 방식보다 느림 JS나 Python 등등 자바는 컴파일러와 인터프리터가 섞인 하이브리드 언어

컴퓨터가 글자를 말하는 방법 (feat. ASCII) 컴퓨터에는 오직 숫자 데이터만 존재하며, 문자라는 것은 존재하지 않는다. 그러면 컴퓨터는 우리에게 어떻게 문자를 보여주는 것인가? 이때 등장하는 것이 바로 미국에서 만든 아스키 코드이다. ASCII(American Standard Code for Information Interchange) 문자를 숫자로 표현하는 표준 문자 인코딩 체계 0 ~ 127까지의 값을 사용하며, 7비트(2⁷ = 128개)의 이진 숫자로 표현한다. 1비트가 추가되어 8비트가 된 확장 아스키 표준도 있지만, 일반적으로 말하는 아스키 코드는 7비트라고 할 수 있다. 아스키 코드는 1바이트로 표현된다. -> 1바이트는 8비트인데, 아스키 코드는 일반적으로 7비트라며? 아스키 문자는 ..

자료형에 대한 이해 자료형 일정 길이의 메모리에 저장된 정보를 해석하는 방법 저장된 정보, 즉 자료는 결국 숫자 C언어의 변수는 메모리를 사용하기 위한 문법으로 이해할 수 있음 자료는 변수와 상수 두 종류가 있음 C언어 자료형 정수형(부호유무, 크기) 실수형(크기) 유도형(*, [ ], 구조체, 공용체) 함수형 무치형(void) 상수와 변수 그리고 복잡성 상수의 정의 및 종류 값이 확정되어 앞으로 변할 가능성이 없는 수 리터럴 상수와 심볼릭 상수가 있는데, 일반적으로 상수 하면 리터럴 상수를 뜻함 리터럴 상수 문자 상수(아스키 코드) ex. 'A' 컴퓨터에는 문자라는 개념이 존재하지 않아, 정수를 아스키 코드표에 매칭?된 문자로 랩핑하여 화면에 출력 문자열 상수 ex. "Hello, World" 정수 상..

CPU와 메모리 CPU는 연산을 담당한다. 무엇을 연산 할 것인지 자료, 즉 데이터는 메모리(RAM)가 제공한다. (연산할 데이터가 어디에 있는지는 메모리의 주소로 나타냄) 어떻게 연산을 할 것인지 CPU에게 명령을 내리는 집합체를 Program이라고 한다. ※ 연산할 데이터를 메모리에서 CPU로 가져와서, CPU에서 연산 후 결과값을 메모리로 보내는 과정이 매우 중요하다. C언어에서는 RAM 메모리(변수)와 File System 메모리(HDD, SSD, USB...)를 잘 사용하는 것이 중요하다. 실행과 참조의 개념 실행이란? 실행의 실체는 'CPU의 연산'이라고 할 수 있다. 연산에 필요한 정보(변수, 값)는 메모리에서 가져오고, 그 정보를 CPU 레지스터로 전달 후 연산을 한다. 연산 결과가 저장된..

이미 아는 10진법 인간이 사용하는 일반적인 진법체계로, 한 자리 숫자는 0~9까지 10가지 경우가 존재한다. (자릿수가 올라갈 때마다 10ⁿ을 곱함) 10진수, 2진수, 16진수로 서로 와리가리 변환하는 방법에 익숙해지자. (8진수는 딱히..?) 2진수 16진수 변환 16진수는 10진수와 구분되기 위해 앞에 0x를 붙여준다. 16진수를 2진수로 나타낼 때, 하나의 16진수는 4비트의 2진수로 표현한다. ex. 16진수 0 = 2진수 0000 16진수(저수준) 표기가 사용되는 예 색상 표현 (RGB 컬러), 컴퓨터 하드웨어 주소 표현, 메모리에 저장된 값 표현 등등...