배열 이름이 포인터 역할을 한다고 하는데 예를 들면
a[4]={1,2,3,4,}
이렇게 두고 printf(\"%d\",a)를 하면 a[0]의 주소값이 뜨잖아
그러면 a 도 포인터와 마찬가지로 다른 메모리 공간에 a라는 이름으로 a[0]의 주소값이 저장이 되는거야?
int *a=&a[0]이거랑 같은 건지 궁금혀
a[4]={1,2,3,4,}
이렇게 두고 printf(\"%d\",a)를 하면 a[0]의 주소값이 뜨잖아
그러면 a 도 포인터와 마찬가지로 다른 메모리 공간에 a라는 이름으로 a[0]의 주소값이 저장이 되는거야?
int *a=&a[0]이거랑 같은 건지 궁금혀
직접 컴파일해보고 짜보면 나오잖아요;; 궁금하면 직접 해보시면 되잖아요. 했는데 이건 이렇고 저건 저렇더라. 그런데도 궁금하더라. 라는 질문으로 해주세요.
ㅎㅎ 저도 동감을 하는데 지금 밖에 있어서 다른 프로그램을 깔아서 사용할 수 없어서 코드패드 사이트에서 코드를 만들어서 해봤는데 직접 메모리에 저장이 안 되어서 그런지 출력이 안돼서요. 집에는 저녁에 가야 되어서 이런 질문을 하네요
헐. 알겠슴다.
int b; 라고 선언하고 int*c=&b; 라고도 쓰는데 그러면 b도 따로 주소값이 메모리 공간에 저장될까요?
아~~~ 어렵다 ㅅㅂ
http://codepad.org/QAMlKGtP
코드패드가 출력이 안된다니.
감사요. 책에는 출력할때 %d로만 계속되어서 %d로 작성해서 안됐는데 %p로 하니까 결과가 나오네요
배열 선언시 배열의 변수명은 해당 배열의 시작 주소를 가리키는 포인터라고 보면 됨 그러니까 a[1] 말고 *(a + 1)이 가능한거임
http://codepad.org/OAIQD8ql
// 잘보면 4단위로 줄어든다는걸 알텐데? 아마도 MSB가 1이라 음수값이 출력되긴 하지만
근데 %p는 출력형태가 어떤거죠? 방금 교재에 서식문자 표를 찾아봤는데 %p는 소개가 안돼 있는데요
http://codepad.org/1Hl9nvlb
포인터 주소출력
음... 교재에 나온 것 말고도 서식문자가 엄청 많은 것 같군효. 모두 감사효
횽들 도움으로 a ,&a,&a[0] 전부 같은 주소값이 출력되는 걸 알았는데 다른 질문이 a[0]=1이 저장되는 메모리 공간에 a문자에 a[0]의 주소값이 입력이 되어서 같이 저장되는 건가요?
배열명은 주소값 그 자체다. 포인터 변수랑 헷갈리면 안되는데 말이지