C언어 포인터 질문드립니다.
소리
C 언어의 포인터 부분 질문 드립니다.
int *temp1,temp2;
temp2 = 100;
temp1 = &temp2;
궁금한게 *temp1 - temp1명이 저장하고 있는 주소의 주소지 값을
&temp1 - temp1의 실 주소지
temp1 - ? (이놈은 뭐라고 이해를 해야 하죠!)
-
보르미
선언이 아니라 사용부에서 *temp1과 &temp1, 그리고 temp1을 궁금해 하시는군요 ^^
temp1 : temp1이가지고 있는 값 ( temp2의 메모리 주소 )
*temp1 : temp1이 가지고 있는 값을 주소로 보고, 그곳으로 이동했을때 있는 값 ( temp2값)
&temp1 : temp1이라는 변수가 있는 메모리 주소 ( temp1의 메모리 주소 )
이렇게 될까요? C 잘하시는 분 확인해 주세요 ^^; -
더글러스
음. 제가 질문을 모호하게 했나봅니다.
다름이 아닌
temp1을 printf 로 출력했을때 결과가 틀립니다.
printf(\ *temp1 = [%d]\\n\ -
쇼코홀릭
그럼 이렇게 이해를 하시면 됩니다. temp1 은 temp2와 똑같은 변수입니다. (단, temp1에는 주소가 temp2에는 값이 들어가는거죠)
-
남은
제가 보기에는 니캉내캉님께서 질문의 모호하게 하시는것입니다. ^^
temp1 -- 이 놈을 뭐라고 이해를 하다니요..
temp1은. \포인터 변수\입니다. 그게 끝입니다. ;;
더 이상 자세히 설명해 줄 수 없습니다.
어떤역할을 하느냐라는 질문도 아니고, 어떻게 해석해야 되느냐도 아니고,
어떤 의미를 가지느냐도 아니고,
뭐라고 이해를 해야 하느냐.. 라는 질문이 살짝 모호 하네요.. -
새밝
죄송한데여
질문을 잘못 이해 하고 계신건지 제가 질문을 잘못 올리건지. ^^;
제가 물어본 답에 대한 답변이 없내요
아래 이놈의 의미만 설명을 해주시면 되는데
temp1 - ? (이놈은 뭐라고 이해를 해야 하죠!)
더 복잡해 지내요
미키야 님
*temp1 = 10
&temp1 = AAA
temp = FFF -- 정확희 temp1 ,temp2 중 어떤걸 말씀하시는 거애여! -
갤2
C를 써본지 한 2~3년되어서 틀릴수도 있으니 감안하시길...ㅎㅎ
-
덕이
int * temp1, temp2 이렇게 표현함은 포인터변수 temp1과 일반변수 temp2를 선언해준다는 말입니다.
그렇기 때문에 *temp1 이란 변수는 존재하지 않고 temp1이란변수가 (int *)타입이라는 거지요.
즉 temp1은 temp2의 주소를 저장하고 있는 포인터 변수라고 이해하시면 됩니다. -
나봄
포인터로 선언된 변수에 일반 정수로 대입할수 있었나?-0-
int temp2 = 10 일때
temp2의 주소는 FFF라고 칩시다 그 주소가 가지고 있는 값은 10입니다.
int* temp1 = &temp2일때
temp1의 주소는 AAA라고 칠때 값은 FFF를 가지고 있는겁니다~
*temp1 = 10
&temp1 = AAA
temp = FFF
가 되겠죠