Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[5429] Re:초보가 질문드려염^^
이카루스 [icarus147] 1500 읽음    2005-11-01 11:50
*p는 가리키고 있는 주소의 값을 의미합니다. p가 가지고 있는 값이 주소입니다. 간단한 예로 아래 영그이 님이
써놓으신 것을 예로 하죠

char M = 'h';
  char *mp ;
mp =& M;
*mp ='A";
printf("%c",M);
printf("%c",*mp);

질문에 보시면 *p 는 주소의값을 말하는거 아닌가요 라고 하셨는데요 위의  mp =& M;을 보시면 &는 주소값을
얻을때 사용하신다고 보면 됩니다. 알고 계시리라 생각합니다. 그럼 mp에는 당연히 M의 주소값이 들어가겠지요.
간단히 원하시는 내용을 출력하는 소스를 보면 쉽게 더 이해하실겁니다.

#include<stdio.h>

int main(void){
    int M[5]={3,6,9,12,15};

    int *p = M;
    int a=0;

    for(a=0;a<5;a++){
        printf("%d",p[a]);
    }

    return 0;
}

int *p=M은 다음의 내용을 요약한 것입니다.
int *p; p=&M[0];  //p=M; 이런식으로도 가능합니다.

그럼 요약을 풀어버린 소스를 보자면 이렇게 되겠지요.

#include<stdio.h>

int main(void){
    int M[5]={3,6,9,12,15};

    int *p;
    p= M;
    int a=0;

    for(a=0;a<5;a++){
        printf("%d",p[a]);
    }

    return 0;
}

이렇게 하면 이해가 좀 쉬우실지 모르겠습니다. 그리고 일단 함 프로그램을 돌려보시고요 에러메세지와 모르시는
부분을 이야기하시면 좀 더 쉽게 답변을 얻으실거에요. 소스가 길어지고 주석이 없으면 귀찮아서 안보게 되거든요
^^;; (저만 그럴지도... 영그이님이 그렇다는 건 아니고요. 밑에 운영자님 글을 보게되세요 ㅋ)

그럼 즐프하시고요~ 좋은 하루 보내세요.


영그이 님이 쓰신 글 :
: char M = 'h';
:  char *mp ;
: mp =& M;
: *mp ='A";
: printf("%c",M);
: printf("%c",*mp);
:
: 이러면 AA가 출력되잖아요 이건알겠는데요
:
: int M[5]={3,6,9,12,15};
:
: int *p = M;
: int a=0;
: for(a=0;a<5;<a++)
: printf("%d",printf(*p[a]);
:
: ==========================================
: 강의를 보다가  여기서 p 와 M 이 같다라고 하는데요
:
: 이것이 이해가 안가요
:
: M 은 M[0] 번지의 주소이잖아요
:
: *p 는 주소의값을 말하는거 아닌가요
: *p = M ; 
: 이러면
: *p = M[0]번지의 주소
: 이게 말이 되는건가요?
: 음..머리가 아주 복잡하네요 ^^;

+ -

관련 글 리스트
5427 초보가 질문드려염^^ 영그이 1523 2005/11/01
5429     Re:초보가 질문드려염^^ 이카루스 1500 2005/11/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.