- 문자열 상수
배열의 식별자 = 배열의 첫번째 데이터의 주소
(밑에서는 a)
문자열 상수 = 문자열의 첫번째 문자 주소
(밑에서는 "ABCDEFG" , "Is english")
문자열은 첫번째 문자의 주소부터 null값 까지 데이터를 찾는 방식으로 사용이 된다
그렇기에 저 "Is english"도 문자열이기에 메모리 어딘가에 저장이 되고
첫번째 문자의 주소가 있을 것이고 null값 또한 있을 것 이다
첫번째 주소는 "Is english" 이 자체로 첫번째 문자의 주소를 나타낸다
쉽게 "ABCDEFG"로 확인한다
위에 말처럼 "ABCDEFG" 는 문자열의 첫번째 문자 주소가 될수도있다.
(int*) 을 붙여준 이유는 안붙이면 cout가 문자열주소 로 파악하고 문자열을 출력하기때문에
주소를 출력하려고 변환했다
"ABCDEFG"가 가진 주소는 00B0AB30, 그 주소로 가 무슨 데이터가 있는지 확인한다
41이 들어있다, 메모리는 16진수형태로 나타나며 41은 10진수로 65다
65는 아스키 코드로 'A' 이므로
"ABCDEFG" 가 'A'의 주소를 가지고 있다고 볼 수 있다
컴파일러마다 다르지만 같은 내용이 담긴 문자열 상수가 여러개가 사용되면
하나로 취급하여 하나의 주소로 사용 하는 경우도 있다고 한다
[메모리에 하나만 저장하여 쓰인다는 말]
'C++ > [책] C++ 기초 플러스' 카테고리의 다른 글
[ 220p ~ 253p ] stl vector & stl array, 표현식, for, 증가&감소 연산자, 부수효과&시퀀스 포인트, 접두어 접미어 방식 (0) | 2021.07.03 |
---|---|
[ 210p ~ 219p ] 도트 멤버 연산자 & 화살표 멤버 연산자, 데이터의 저장공간, 포인터 장난 (0) | 2021.07.01 |
[ 179p ~ 203p ] 포인터, NULL&nullptr, New, Delete, 배열 포인터 (0) | 2021.06.28 |
[ 160p ~ 178p ] 구조체, 공용체, 열거체 (0) | 2021.06.03 |
[ 130p ~ 160p ] 배열, 문자열, string, raw문자열 (0) | 2021.06.01 |