char* s1 = "abc"; char s2[] = "abc";
s1은 문자열 상수, s2는 문자열 변수입니다.
s1 정적영역에서 생성이 되었고 변경이 불가능합니다. s2는 배열의 시작 주소값을 가리키므로 메모리 위치는 바꿀 수 없지만 값은 바꿀 수 있습니다.
int Test_Array[10];가 있다면 Test_Array[10]는 배열의 첫번째를 가리킵니다.
배열은 연속된 메모리의 집합입니다. 하지만 리스트는 불연속적인 메모리로 구성되어 있어서
블럭 단위로 검사를 하는 캐시 특성상 적중률이 낮을 수 밖에 없습니다.
클래스의 내부 멤버 함수들은 암묵적으로 인라인화 됩니다.
함수의 인라인화는 컴파일 타임일 때 진행이 됩니다.
클래스에 가상함수가 선언이 되어있다면 그 클래스에 있는 모든 함수는 가상함수 테이블에서 관리됩니다.
클래스에 가상함수가 1개도 없다면 코드 영역에 시작 주소값이 저장됩니다.
함수 포인터 -> 함수 객체 -> 람다 함수 순으로.
'C,C++ > 공부 낙서' 카테고리의 다른 글
공부하면서 빠트린 것들 끄적끄적 - 연산자 (0) | 2022.11.18 |
---|---|
공부하면서 빠트린 것들 끄적끄적 - 템플릿, 타입ID (0) | 2022.11.16 |
공부하면서 빠트린 것들 끄적끄적 - 가상함수, 형변환 (0) | 2022.11.15 |
공부하면서 빠트린 것들 끄적끄적 - 헤더 참조 (0) | 2022.11.07 |
공부하면서 빠트린 것들 끄적끄적 - const (0) | 2022.11.04 |