CSE207 객체지향 강좌 및 C++ 관련, 누구나 묻고 답하는 게시판 입니다. CSE207 수강생이 아니여도 편안하게 질문하세요. 첨부화일은 이미지 화일 혹은 zip 화일로 업로드 하기를 권합니다. 제목c++에서 array와 pointer2019-04-09 17:27작성자쀼르릉#include <iostream>using namespace std;int main(){ int a[]={3,4,5,6,7,8}; int *p=a; // a는 array이므로? 4바이트의 int가 6개니까 24바이트 // a+0 은 pointer 이므로? int하나를 가리키는 8바이트 cout<<sizeof(a)<<endl; //24 cout<<sizeof(a+0)<<endl; //8 cout<<sizeof(p)<<endl; //8 cout<<a[20]<<endl; cout<<p[20]<<endl;}===============================================================옛날부터 조금 헷갈렸던 내용인데요.array name과 pointer는 혼용해서 쓸 수 있다고 알고 있습니다.근데 array name과 pointer가 완전같다고 볼 수 있는가? 에 대해 잘 모르겠습니다.교수님께서는 compiler는 애초에 array를 pointer로 바꿔서 생각해버린다고 설명하신 것 같은데,그렇다기에는 코드에서 보이듯, sizeof(array)를 하면 array의 크기가 나오지만, sizeof(p)를 하면 그냥 포인터 p의 크기가 나오잖아요? 1. 따라서 array name과 pointer과 완벽히 같다고는 볼 수 없는 것 같은데둘이 다른 게 무엇인가요? 제가 느끼기에는 a+0와 p는 완벽히 같다고 생각합니다.또한 array size를 생성할 때 지정하잖아요. 2. 근데 왜 array size를 넘어가는 index를 주어도 작동이 되는 지 궁금합니다. 엄청 큰 index를 주면 값이 안 나오고, size보다 큰 값 중 적당히 큰 값을 넣어주면 0으로 나오더라구요.그냥 컴파일러나 OS가 적절히 array size와 비슷한 어느정도까지는 메모리를 잡아놓는 것이잖아요? 목록수정삭제답변글쓰기 댓글 [0] 댓글작성자(*)비밀번호(*)내용(*) 댓글 등록 더보기이전[파일 입출력 관련] 썻지만 파일이 빈 파일인 경우머리가뱅뱅뱅2019-04-10다음연산은 동일하나 메모리 속은 전혀 다릅니다drsungwon 2019-04-10 Powered by MangBoard | 워드프레스 쇼핑몰 망보드