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

C/C++ Q/A
[943] Re:[질문] %S에 대한 질문
방태윤 [nabty] 1826 읽음    2002-08-02 19:21
그냥 아는데까지 써보겠습니다.
printf("%s\n",*x); 에서
printf 함수의 내부는 이렇게 되어 있으리라 생각합니다.
인자가 %s 인 경우네는 콤마뒤의 인자를 번지로 생각하고 널이 만날때까지 출력한다...
뭐 이렇게 되어 있지 않을까요?^^
그러니까 0x43 번지로가서 그다음번지로 skip 하면서 널이 만날때까지 출력을 시도하겠지요..
0x43번지에 뭐가 있는지 모르지만 운좋게 널로끝나는 좋은값이있으면 에러날일은 없으것 같기도한데..^^
맞나 모르겠네..맞겠죠?^^


오제호 님이 쓰신 글 :
: 아래와 같은 문자열이 있을때
:   char *x="C++ Builder programing";
:    printf("%p\n",*x);           
:    printf("%p\n",x);
:    printf("%c\n",*x);
:    printf("%s\n",x);
:    printf("%s\n",*x);         //error
:
: 결과값의 출력이 첫번째는 00000043('C'의 hexadecimal값)
: 두번째는 문자열의 처음 주소(004020a4)가 출력되었고
: 세번째는 C, 네번째는 문자열 전부가 출력되었습니다.
:
: 너무나 당연한 얘기겠죠?
:
: 제가 궁금한건 네번째,다섯번째의 차이입니다.
: x는 문자열의 시작주소를 가리킵니다(여기서는 004020a4)
: 다섯번째 경우에 출력포맷을 string으로 했을때
: 해당되는 문자열의 첫번째 한문자를 출력하지 않고
: error로 빠지게 되는 이유를 알고 싶습니다.
: %c는 한문자 출력
: %s는 문자열 출력이라는 문법의 심오한 뜻을 알고 싶군요.
: 왜 %s로는 한문자는 출력을 못할까요?
: 또한 네번째 경우는 문자열의 처음 가리키는 주소만 알면 문자열 전체를 출력하네요.
:
: 제가 너무 당연한 문법을 왜 그러냐고 묻고 있는 건가요?
: 고수님의 답변 부탁드립니다.
:
:
:
:
:

+ -

관련 글 리스트
937 [질문] %S에 대한 질문 오제호 1538 2002/08/02
943     Re:[질문] %S에 대한 질문 방태윤 1826 2002/08/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.