• 문자열 상수

배열의 식별자   =    배열의 첫번째 데이터의 주소

(밑에서는 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'의 주소를 가지고 있다고 볼 수 있다


 

컴파일러마다 다르지만 같은 내용이 담긴 문자열 상수가 여러개가 사용되면

 

하나로 취급하여 하나의 주소로 사용 하는 경우도 있다고 한다

[메모리에 하나만 저장하여 쓰인다는 말]

+ Recent posts