목록전체 글 (130)
문타쿠, 공부하다.

50.1 두 점 사이의 거리 구하기 #include #include struct Point2D { int x; int y; }; int main(void) { struct Point2D p1; // 점 1 struct Point2D p2; // 점 2 // 점 1의 위치 p1.x = 30; p1.y = 20; // 점 2의 위치 p2.x = 60; p2.y = 50; // 선 a와 b의 길이 int a = p2.x - p1.x; int b = p2.y - p1.y; // c의 값을 구하는 방법 1 float c1 = sqrt((a * a) + (b * b)); // c의 값을 구하는 방법 1 float c2 = sqrt(pow(a, 2) + pow(b, 2)); printf("%f\n", c1); pri..

49.5 연습문제: 학생 구조체 포인터에 메모리 할당하기 #define _CRT_SECURE_NO_WARNINGS #include #include #include struct Student { char name[20]; int grade; int class; float average; }; int main(void) { struct Student* s1 = malloc(sizeof(struct Student)); strcpy(s1->name, "고길동"); s1->grade = 1; s1->class = 3; s1->average = 65.389999f; printf("이름: %s\n", s1->name); printf("학년: %d\n", s1->grade); printf("반: %d\n", s1->c..

49.1 구조체 포인터를 선언하고 메모리 할당하기 #define _CRT_SECURE_NO_WARNINGS #include #include #include struct Person { char name[20]; int age; char address[100]; }; int main(void) { // 구조체 포인터 선언 및 메모리 할당 struct Person* p1 = malloc(sizeof(struct Person)); // 화살표 연산자로 구조체 멤버에 접근하여 값 할당 strcpy(p1->name, "홍길동"); p1->age = 30; strcpy(p1->address, "서울시 용산구 한남동"); // 화살표 연산자로 구조체 멤버에 접근하여 값 출력 printf("이름: %s\n", p1->..

48.5 연습문제: 좌표 구조체 정의하기 #include struct Point2D { int x; int y; }; int main(void) { struct Point2D p1; p1.x = 10; p1.y = 20; printf("%d %d\n", p1.x, p1.y); return 0; } 48.6 연습문제: typedef로 좌표 구조체 정의하기 #include typedef struct _Point2D { int x; int y; } Point2D; int main(void) { Point2D p1; p1.x = 10; p1.y = 20; printf("%d %d\n", p1.x, p1.y); return 0; } 48.7 연습문제: 익명 구조체로 좌표 구조체 정의하기 #include typed..

INTRO 구조체란? 자료를 체계적으로 관리하기 위한 문법 struct 키워드로 정의 struct Person { char name[20]; int age; char address[100]; }; 48.1 구조체를 만들고 사용하기 방법 1) 구조체 정의와 구조체 변수 선언을 따로하기 #define _CRT_SECURE_NO_WARNINGS #include #include // 구조체 정의 struct Person { char name[20]; // 구조체 멤버 1 int age; // 구조체 멤버 2 char address[100]; // 구조체 멤버 3 }; int main(void) { // 구조체 변수 선언 struct Person p1; // 점으로 구조체 멤버에 접근하여 값 할당 strcpy(p..

콘솔(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비트라며? 아스키 문자는 ..