1. int, float, double, bool 중 자바와 크기가 다를 수 있는 타입은?
정답은 int 야! 🔴
자바는 int가 항상 4바이트로 고정이야. JVM이 보장해줘.
근데 C++은 int 크기가 플랫폼/컴파일러마다 달라질 수 있어.
// 32비트 시스템 → int = 4바이트
// 64비트 시스템 → int = 4 or 8바이트 (컴파일러마다 다름)
// 확인하는 법
std::cout << sizeof(int); // 4 or 8
std::cout << sizeof(float); // 4 (이건 어디서나 고정)
std::cout << sizeof(double); // 8 (이건 어디서나 고정)
자바 개발자가 C++ 처음 쓸 때 자주 빠지는 함정이야. 크기를 보장받고 싶으면 int32_t, int64_t 같은 고정 크기 타입을 써. 언리얼도 이 이유 때문에 int32, uint8 같은 자체 타입을 써.
9. C++에서 bool 타입의 출력값은?
std::cout << true << " " << false;
std::cout << true; // 1
std::cout << false; // 0
자바는 System.out.println(true) 하면 true 나오는데, C++은 기본이 1/0 이야. 헷갈리기 쉬운 포인트!
14. 자바의 null 에 해당하는 C++ 키워드 2가지는?
int* ptr = NULL; // C 스타일 (옛날 방식)
int* ptr = nullptr; // C++11 이후 권장 ✅
// 자바의 null이랑 개념은 같아
// 근데 nullptr은 타입 안전성이 있어서 NULL보다 안전해
20. 아래 코드에서 컴파일 에러가 나는 이유는?
int a = 10;
int& ref = a;
int b = 20;
ref = b;
std::cout << a;
사실 이건 에러 아니야, 정상 동작해
int a = 10;
int& ref = a;
int b = 20;
ref = b; // ref가 b를 참조하는 게 아니라
// a에 b의 값(20)을 복사하는 거야!
std::cout << a; // 20 출력
핵심 포인트! ref = b 는 "ref가 b를 가리켜라" 가 아니라 "ref가 가리키는 곳(a)에 b의 값을 넣어라" 야. 참조자는 한번 묶이면 절대 다른 변수로 못 바꿔. 값만 바뀌는 거야.
약수 찾기
- 약수는 곱해서 n이 되는 두 수이기 때문에 항상 쌍으로 존재한다.
- C++에서는 #include <math.h> 또는 #include <cmath> 포함시 sqrt(n) 함수로 제곱근을 구할 수 있다.
- 하지만, for(int i = 1; i*i <= n; i++)가 더 연산이 적다.
for(int i = 1; i*i <= n; i++){
// i와 n/i를 찾으면 된다.
if(n%i == 0){
answer += i;
if(i != n/i) // 완전제곱수는 하나를 제외하고 연산한다.
answer += n/i;
}
}'코딩 학습 > C와 C++' 카테고리의 다른 글
| C++ 기초 - 객체지향 설계 (1) | 2026.03.16 |
|---|---|
| C++ 헷갈리는 개념 정리 (0) | 2026.03.13 |
| C++ 기초 - 템플릿 (0) | 2026.03.11 |
| C++ 기초 - 자원 관리 (0) | 2026.03.10 |
| C++ 기초 - Vector, Map (0) | 2026.03.09 |