일반적인 포인터 한개만 알고 계시면 됩니다. (이중 포인터, 함수포인터는 그냥 그런게 있다라고만 생각하세요)
int * pA;
struct 포인터는 아래 같은 형식일텐데.
struct st_test{
int a;
int b;
};
struct st_test * pB;
이것을 이해하는것도
(struct st_test) == (int) 라고 생각하시고 이해 하시면 됩니다.
(struct st_test) * pB;
== (int) * pB;
== int * pB;
모든 포인터를 그냥 int * 로 이해하시는것이 속 편합니다
-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐? 그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.
-----------------------
내가 쓰는 글은 틀릴 수 있습니다.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
어셈블리를 공부해 보세요.
전체를 이해하실 필요는 없습니다.
어셈블리 책이나 강좌의 앞부분만 보시면 도움이 되실 겁니다.
인용:Submitted by phonon
어셈블리 책도 좋고, C언어에서 메모리가 어떤 식으로 잡히나 강좌를 통해 그 구조만 이해하셔도 금방 이해하실 수 있을 거예요.
재밌는 문제 하나를 내볼까요? 배열 배우셨죠? 그럼
printf("%d", 100[a]);
가 무엇을 뜻하는 지 아시겠어요?
이거 아시면 어느정도 포인터 이해하신건데 ^-^ㅎ
헛.ㅠㅠ
음..
#include
void main()
{
int a[100]={0,};
printf("%d\n",99[a]);
printf("%d\n",100[a]);
}
로 해봤더니
0
1245120
이렇게 뜨네요..
a의 시작점으로부터 앞에 정의한 숫자만큼 떨어진 곳의 메모리값을 읽어들이는거군요
----------------------
뻘짓도 일이다.
뻘짓도 일이다.
모두가 알고 있는
모두가 알고 있는 사실이지만, 참고로 말씀드릴께요
C 언어에서
포인터 변수에 대해 ptr[n]연산은 *(ptr + n)으로 바뀝니다.
그래서
99[a]는 *(99 + a) 가 됩니다.
a[99]는 *(a + 99) 죠.
덧셈의 교환법칙에 의해 저 둘은 같습니다.
[] 연산은 배열과 포인터에 대해 둘다 잘 동작합니다.
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
포인터가 뭔지 물어 보시는데
나빌레라님 C언어의 난해함(자유로움)를 미리 알려 주시면 어떠지 하옵니까.
스스로 책으로 공부하시면 여기에 질문해서 얻는 패스트 푸드보다
시간이 걸리지만 몸과 마음에 이로운 슬로우 푸드를 드시는 겁니다.
원하는 부분뿐만 아니라 주변의 지식도 얻으실 수 있습니다.
아무쪼록 천천히 꼭꼭 씹어서 몸과 마음에 영양분이 되기를 바랍니다.
조금은 마음의 여유가지면서 하시길.
모두가 다
모두가 다 알고있다고 하셨는데..
저 지금 충격 먹었습니다 -_-;
Do you hear the people sing?
저한테 오시면.. 오프라인으로 가르쳐 드리겠습니다.
단, 소개팅 해주시면 -_-;
1단계 : 기존의 코드를 그림으로 표현하는 방법
2단계 : 그림을 코드로 옮기는 방법
3단계 : 원하는 내용을 그림으로 표현해 코드로 옮기는 방법
-> 최종적으로 원하는 내용을 코드로 나타내는 방법
이렇게 순차적으로...
--------------------------------
Go to the U-City
----------------------------------------------------------------------------------------
Don't Feed the Trolls!
----------------------------------------------------------------------------------------
일반적인 포인터
일반적인 포인터 한개만 알고 계시면 됩니다. (이중 포인터, 함수포인터는 그냥 그런게 있다라고만 생각하세요)
struct 포인터는 아래 같은 형식일텐데.
이것을 이해하는것도
모든 포인터를 그냥 int * 로 이해하시는것이 속 편합니다
-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐? 그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.
-----------------------
내가 쓰는 글은 틀릴 수 있습니다.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"