구조체를 가르키는 포인터를 사용해서 그 구조체의 맴버에 접근하려면 -> 연산자를 사용하잖아요 그 표현을 풀어쓰면 (* strudt).member 로 표현되는것으로 알고있는데
a->b->c 와 같은 표현을 풀어쓰면 아래와 같이 되는데 (*(*(*a).b).c)
이와 같이 쓰면 완전히 잘못된것인가요? (*a).(*b).(*c)
a->b->c 는 (((a)->b)->c) 입니다. (*(*(*a).b).c)는 ***a.b.c 지만 . 연산자가 *보다 우선순위가 높기 때문에 괄호를 넣은 것 뿐입니다.
(*a).(*b).(*c)는 컴파일 에러 날 듯 싶은데 어떤 결과가 나오나요?
a->b는 (*a).b가 되겠고, a->b->c는 (a->b)->c이니 ((*a).b).c여야겠죠. 그리고, (*b)나 (*c) 부분은 애초에 위법입니다. 구조체 소속의 변수[member variable] 이름들은 . 오른쪽에 쓰였을 때만 의미를 가진다는 점을 다시 생각해 보세요.
a->b
(*a).b
a->b->c
(a->b)->c
((*a).b).c
(*b)
(*c)
.
마지막으로, (*(*(*a).b).c)는 a->b->*c입니다.
(*(*(*a).b).c)
a->b->*c
> What is the difference between software and hard water? } Bugs drown in hard water, but live forever in software.
Real programmers /* don't */ comment their code. If it was hard to write, it should be /* hard to */ read.
그렇네요 생각없이 쓰다보니 마지막 ->c까지 * 을 해버렸네요
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
a->b->c 는 (((a)->b)->c)
a->b->c 는 (((a)->b)->c) 입니다.
(*(*(*a).b).c)는 ***a.b.c 지만 . 연산자가 *보다 우선순위가 높기 때문에 괄호를 넣은 것 뿐입니다.
(*a).(*b).(*c)는 컴파일 에러 날 듯 싶은데 어떤 결과가 나오나요?
a->b는 (*a).b가 되겠고,
a->b
는(*a).b
가 되겠고,a->b->c
는(a->b)->c
이니((*a).b).c
여야겠죠.그리고,
(*b)
나(*c)
부분은 애초에 위법입니다. 구조체 소속의 변수[member variable] 이름들은.
오른쪽에 쓰였을 때만 의미를 가진다는 점을 다시 생각해 보세요.마지막으로,
(*(*(*a).b).c)
는a->b->*c
입니다.> What is the difference between software and hard water?
} Bugs drown in hard water, but live forever in software.
Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.
그렇네요 생각없이
그렇네요
생각없이 쓰다보니 마지막 ->c까지 * 을 해버렸네요
댓글 달기