반응형

2025/01 2

[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
반응형