반응형

C | C++/Basic 11

[C++] 캐스팅(Casting)

일반적인(C 스타일) 캐스팅의 문제 C언어에서 사용되는 일반적인 캐스팅은 다음과 같이 사용합니다.(변환형)변수 위와 같이 매우 간단하게 특정 변수의 명시적으로 자료형을 변환할 수 있습니다. 하지만, 일반적인 캐스팅에는 사소한 문제점이 존재합니다.컴파일 타임에 타입 변환 유효성 체크하지 않음 -> 근원을 알기 힘든 런타임 오류를 발생시킬 가능성이 있음특히 포인터 관련 자료형에 대한 캐스팅 시에 추적이 어려움 -> 의도를 알기 어려움 -> 디버깅 어려움거의 모든 자료형으로 변환 가능 -> 안전성 부족, 오류 발생 가능성 증가 위 문제들을 해결하기 위해 C++에서는 더 안전하고 명시적인 캐스팅을 위해서 또다른 Cast 연산자를 제공합니다.C++ 캐스팅 연산자 C++에서는 다음과 같은 4가지 Cast 연산자를 ..

C | C++/Basic 2025.01.30

[C++] 포인터 기초 2 - 포인터 배열

포인터와 배열의 관계 일반 배열을 나타낼 때에는 다음과 같이 작성합니다.int ary[5] = { 1, 2, 3, 4, 5 }; // 일반 배열 이때 배열 변수의 이름, 즉 ary는 ary의 첫번째 요소의 주소를 가진 포인터와 같습니다. 따라서 다음과 같은 결과가 나타납니다.int ary[5] = { 1, 2, 3, 4, 5 };printf("%d", *ary); // 1을 출력합니다 포인터는 +/- 연산이 가능한데, 일반적인 +/-연산과 다르게 포인터의 +/- 연산은 데이터 형식의 크기를 기준으로 계산합니다.char chs[5] = { 'A', 'B', 'C', 'D', 'E' };printf("%p / %p\n", chs, (chs + 1));// chs 주소와 chs+1 주소의 차이는 char의 크..

C | C++/Basic 2025.01.25

[C] 파일 입출력

파일의 입출력C언어는 표준 라이브러리에서 파일 입출력 함수를 제공합니다.파일 포인터 (FILE*)C언어에서는 파일 포인터를 이용하여 파일을 읽거나 씁니다.FILE* fp;파일 포인터는 다음과 같이 선언합니다.파일 포인터는 메모장을 열었을 때의 커서의 위치를 나타내는 것과 비슷한 역할을 합니다.파일 모드표기법설명포인터 위치텍스트 파일"r"읽기 모드로 파일을 엽니다.처음 부분"w"쓰기 모드로 파일을 엽니다. 파일이 없으면 새로운 파일을 생성하고 파일이 이미 있으면 기존 내용을 모두 지우고 처음부터 씁니다.처음 부분"a"추가 모드로 파일을 엽니다. 파일이 없으면 새로운 파일을 생성하고 파일이 이미 있으면 기존 내용의 끝부터 씁니다.끝 부분"r+"읽기와 쓰기 모드로 파일을 엽니다.처음 부분"w+"읽기와 쓰기 모..

C | C++/Basic 2022.11.04

[C] 열거형(Enumeration)

열거형 (Enumeration) 열거형은 여러 상수 값이 열거된 자료형으로 프로그래밍에서 가독성과 직관성을 높이기 위해서 사용합니다. 열거형은 사용자 정의 자료형으로 필요한 만큼 정의하여 사용할 수 있습니다. 예를 들어, "앞, 뒤, 왼쪽, 오른쪽"을 나타내는 방향을 저장하는 변수가 필요하다고 하면 정수, 실수, 문자 자료형을 이용하여 이를 표현할 방법을 마련해야 합니다. int direction = 0; // 0 : 전 // 1 : 후 // 2 : 좌 // 3 : 우 다음과 같이 정수 자료형을 이용하여 각 숫자에 의미를 부여하는 방법이 있지만 만약 프로그램이 더 복잡해지고 다른 사람이 이 코드를 본다면 한눈에 이해하기에는 어려움이 있을 것입니다. enum Direction { Front, Back, L..

C | C++/Basic 2022.10.08

[C] 구조체(Structure)

구조체 (Structure) 구조체는 서로 다른 자료형을 갖는 데이터들을 하나로 묶어 놓은 자료형으로 내부 데이터는 사용자가 직접 필요한 것만 필요한 만큼 서로 다른 데이터를 지정하여 사용할 수 있습니다. 예를 들어, 사람에 대한 정보를 담는 데이터에는 char배열의 이름, int형의 나이, float형의 키와 몸무게 등의 여러 데이터가 필요합니다. char name[10] = "Hyeok Jun"; int age = 20; float height = 175; float weight = 65; 다음과 같이 사람 정보를 담는 데이터를 하나씩 선언할 수 있지만 10개, 100개, 그 이상의 여러 사람 데이터를 생성한다고 하면 프로그램이 복잡해질 것입니다. char name[100][10]; int age[1..

C | C++/Basic 2022.09.17

[C] 포인터 기초 1 - 간접 연산자(*)와 주소 연산자(&)

간접 연산자(*)와 주소 연산자(&)포인터 변수는 어떤 변수가 데이터가 저장된 주소를 가리키는 변수입니다. 간접 연산자(*)는 변수의 선언에서 사용될 때와 아닐 때의 작동 방식이 다른데변수의 선언에서 간접 연산자는 해당 변수가 포인터 변수라는 것을 명시하는 표시이고변수의 선언이 아닐 때의 간접 연산자는 주소를 해당 데이터로 변환해주는 기능을 합니다. 주소 연산자(&)는 어떤 변수가 저장된 주소를 반환하는 연산자입니다.따라서 아래와 같이 간접 연산자와 주소 연산자는 같이 쓰는 것이 일반적입니다.int number = 123;int *number_ptr = &number;// number_ptr은 정수형 포인터 변수임을 명시하고 number의 주소를 저장합니다.// 따라서 number와 *number_ptr..

C | C++/Basic 2022.06.18

[C] 조건문과 반복문

조건문 if 문 if 문은 어떤 조건의 참과 거짓을 판별하여 코드를 실행하는 문법입니다. if 문의 기본 구조는 다음과 같습니다. if(조건식) // 조건식이 참일 경우에만 { ... }를 실행합니다. { // 명령문 } else if(조건식) // 위 if 문이 거짓일 경우에 조건을 확인하여 실행합니다. { // 명령문 } else // 위의 if 문의 조건식이 모두 거짓일 경우에 실행합니다. (반드시 if문의 마지막에 옵니다.) { // 명령문 } int score = 70; if(score >= 100) // score가 100점 이상일 경우 { printf("만점\n"); } else if(score >= 70) // score가 100점 이상이 아니고 70점 이상일 경우 { printf("합격\..

C | C++/Basic 2022.04.25

[C] 표준 입출력

stdio.h (Standard Input Output library) stdio.h는 C언어의 표준 라이브러리 함수의 매크로 정의, 상수, 여러 자료형의 입출력 함수가 포함된 헤더 파일입니다. 대표적인 함수로 printf, scanf 함수가 있으며 이 기능을 사용하기 위해서는 다음과 같이 소스코드에 해당 헤더 파일을 포함해야 합니다. #include // stdio.h 헤더파일을 포함합니다. stdio.h와 같은 헤더 파일을 포함하기 위해서는 위와 같이 #include를 통해 헤더파일을 포함시킵니다. printf() printf 함수는 표준 출력장치인 모니터에 데이터를 출력하는 함수입니다. printf 함수의 기본 형식은 다음과 같습니다. printf("서식 문자열", 변수나 식...); printf(..

C | C++/Basic 2022.04.15

[C] 변수와 자료형

키워드 (Keywords)키워드는 C언어에서 고유한 의미를 갖는 단어로 식별자로 사용할 수 없으며 각 키워드는 프로그램에서 특별한 기능을 수행합니다.autodogotosignedunsignedbreakdoubleifsizeofvoidcaseelseintstaticvolatilecharenumlongstructwhileconstexternregisterswitchcontinuefloatreturntypedefdefaultforshortunion다음은 32개의 C언어 키워드입니다.* 예약어(Reserved Word)라고도 합니다.식별자 (Identifier)식별자는 변수, 상수, 함수의 이름 등 사용자가 직접 정의한 데이터로 정의할 때 다음과 같은 규칙이 있습니다.- 영문 대소문자, 숫자, 언더바(_)로만 ..

C | C++/Basic 2022.04.15

[C] C언어 시작하기

C언어란 C언어는 1972년 AT&T사의 Bell Labs에서 데니스 리치가 만든 UNIX 개발용 고급 언어로 개발된 프로그래밍 언어입니다. 처음에는 UNIX 개발용으로 프로그래밍 언어가 CPL > BCPL > B 순으로 발전되었으며 데니스 리치가 B언어를 발전시켜 만든 언어가 C언어입니다. C언어의 특징 뛰어난 이식성 C언어의 이식성은 옛날부터 각광받아왔으며, 어떠한 컴퓨터의 구조에도 영향받지 않고 호환성을 유지합니다. 또한 다른 프로그래밍 언어와 혼합되어 사용될 수 있습니다. 뛰어난 자원 관리 C언어는 문자, 숫자 등 다양한 자료형과 포인터를 이용하여 성능상으로 뛰어납니다. 절차적 프로그래밍 언어 C언어는 프로그래밍한 순서대로 명령을 수행하는 프로그래밍 언어입니다. 다양성 C언어는 과학, 수학, 사무..

C | C++/Basic 2022.04.15
반응형