프로그래밍/C++

#33. 포인터 & 배열

코딩하는상후니 2022. 7. 19. 22:05

 

*문자열 = 문자의 배열
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