*문자열 = 문자의 배열
cout << "Hello World" << endl; // const char
*포인터와 배열은 같은건가 ??
const char* const Test1 = "Hello World";
=> .rodata " " 는 상수!!
=> 단지 주소 저장
const char* Test1 = "Hello World"; // .rodata
char Test2[] = "Hello World";
1. 포인터의 경우
리터럴상수의 주소를 rax 에 저장
[Test1] 에 주소를 넣어준다.
2. 배열의 경우
Hello world 리터럴 상수가 저장되어있는 곳과 [Test2] 값을 구하고
각각 rdi, rsi 레지스터에 넣고
rep movs byte prt [ rdi ], byte ptr [ rsi ]
rsi 에 있는 값(리터럴상수) 을 rdi ( [Test2] ) 의 값으로 '복사' 한다.
즉, 포인터와 배열은 엄연히 다르다.
'프로그래밍 > C++' 카테고리의 다른 글
#35. 다차원 배열 (0) | 2022.07.19 |
---|---|
#34. 다중 포인터 (0) | 2022.07.19 |
#32. 배열기초 (0) | 2022.07.19 |
#31. 참조 & 포인터 (0) | 2022.07.19 |
#30. 참조 기초 (0) | 2022.07.19 |