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

C/C++ Q/A
[825] Re:*에 관해서 궁금
남병철.레조 [lezo] 1571 읽음    2002-07-03 23:34

안녕하세요? 레조입니다.

요즘에는 게시판에 신경쓰는게 힘든걸 보니 많이 게을러 진거 같습니다. --;
답변이 아니라도 자주 읽어봐야하는데..
음.. 각설하고.. --;

일단 한마디로 두가지는 모양에 차이가 있습니다. *^^*;;
그리고 그 뒤에 C++설계자의 재치?가 숨어있다고 해야할까요?(아니면말고.. --;)
더욱더 C++이 미려하게 되도록 노력한 흔적이라 해야할까요..?

일단 char와 char*형은 기능이 전혀 다르다는것을 다 아는 사실입니다.
그런데 여기서 재미있는것은 만일 이것을 '*'를 사용하지 않고 각각의 타입에 이름을
주었다고 한다면... point_to_int... --;
각각의 기본 타입에(char, int, float등등) 포인터 타입이 덩달아 생기니...
복잡한 소스코드일 경우 가독성은 떨어지며 표현 역시 더욱 복잡하게 느껴질 것입니다.
이것을 하나의 심볼 '*'로 대체한 것입니다.

즉 두가지 선언은 모양의 차이이지 특별한 차이는 없습니다.
의미적으로 따지면 char* aa;가 더 알맞겠지만 이는 그뿐입니다.
즉, *는 타입(형)의 일부이지 이름의 일부가 아니라는 것을 좀더 분명하게 해주는
코드입니다.
이를 여러개 선언하려면
char* a, * b, * c, * d;
이런식으로 해야겠지요.(변수이름의 일부가 아니라는식으로.. -,-;
그럼 계산식에서, 특히 곱셈에서 저렇게 사용하면?
    int aa = 100, bb = 200;
    int* i1, * i2;

    i1 = &aa;
    i2 = &bb;

    printf( "%d %d\n", *i1, *i2 );

    * i1 = 10;
    * i2 = 2;

    * i1 = * i1 * * i2;

    printf( "%d %d\n", *i1, *i2 );
더 어지러워 지겠네요.
즉, 어떤 표현을 사용하는지는 가독성을 중심으로 생각하면 되겠습니다.
char* a; 또는 char *a; 모두 좋은 표현이지만 가독성 측면에서 생각해보면
위의 코드는
    int aa = 100, bb = 200;
    int *i1, *i2; // 여러개 선언은 역시 붙여서

    i1 = &aa;
    i2 = &bb;

    printf( "%d %d\n", *i1, *i2 );

    *i1 = 10;
    *i2 = 2;

    *i1 = *i1 * *i2;

    printf( "%d %d\n", *i1, *i2 );
그럭저럭 띄울때 보다는 보기 좋지요?
게다가 김백일님처럼 함수의 리턴형에는 붙인다든지하면 역시 가독성 측면에서
좋을것입니다.



±è°æ·¡ 님이 쓰신 글 :
: char *str;
: 이랑
: char* str;
: 이랑 무슨 차이가 있는지 자세히 설명해주세요
: 계속 질문해서 죄송 ㅠㅠ;
:
: 그럼 즐거운하루보내세용

+ -

관련 글 리스트
817 *에 관해서 궁금 ±è°æ·¡ 1641 2002/07/02
3435     Re:*에 관해서 궁금 이경문 1656 2002/07/05
825     Re:*에 관해서 궁금 남병철.레조 1571 2002/07/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.