:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
11/11/11 18:54
*(포인터) 연산자는 포인터가 가리키는 주소에 저장된 값을 나타냅니다.
&(변수) 연산자는 변수가 저장된 주소를 나타냅니다. 보통 변수 = *(포인터), 포인터 = &(변수) 이런식으로 많이 사용하지요. 그리고 *c = &b는.. c가 포인터, b가 변수라고 가정하고 설명드리면, c라는 포인터가 가리키는 주소에, b라는 변수의 주소를 저장하겠다는 뜻입니다. 부족한 설명이라 이해가 잘 되실지 모르겠네요.
11/11/11 19:22
int *a;
b=1234; a=&b; 라고 작성하면.. b는 1234라는 값을 가지고 있는데 별도로 어딘가 메모리에 써여 있어야 겠죠. 그게 주소입니다. 일반적으로는 알 수 없겠죠? 이걸 알려면 printf("%p",&b); 하면 b의 주소가 출력됩니다.(기억이 가물한데 p인지는..) 예를들어 b의 주소가 0x10001000 이라고 하면 a=&b에 의해 a의 값은 0x10001000이 됩니다. (그리고 a도 자기 주소를 별도로 가지고 있습니다.) 추가적으로 c=*a 하면 *a 구문이 a가 가지고 있는 주소값이 가지고 있는 값을 참조하라라는 의미가 되므로 c에 1234가 저장됩니다. 쇼핑몰 하나 사주세요.
11/11/11 20:21
답변을 위에분들이 잘해주셧네요..^^
드디어 c언어 본격적으로 시작하신거 축하드려요..포인터 이놈이 처음 배울때는 참어려운놈이지요... 열심히 하세요.^^
|