[c++] C ++에서 "->"연산자는 무엇입니까?



Answers

또는 완전히 다른 무언가를 위해 ... x slide to 0

while (x --\
            \
             \
              \
               > 0)
     printf("%d ", x);

그렇게 수학적은 아니지만, 모든 그림이 천 단어를 칠합니다. ...

Question

comp.lang.c++.moderated 에서 숨겨진 기능과 C ++ / STL의 숨겨진 기능을 읽은 후 Visual Studio 2008과 G ++ 4.4 모두에서 컴파일 및 작업이 완료되었음을 알게되었습니다.

코드는 다음과 같습니다.

#include <stdio.h>
int main()
{
    int x = 10;
    while (x --> 0) // x goes to 0
    {
        printf("%d ", x);
    }
}

나는 이것이 GCC에서도 잘 작동하기 때문에 이것이 C라고 가정 할 것이다. 표준에서 정의 된 부분은 어디에서 비롯 되었습니까?




완전히 괴짜지만, 나는 이것을 사용할 것이다 :

#define as ;while

int main(int argc, char* argv[])
{
    int n = atoi(argv[1]);
    do printf("n is %d\n", n) as ( n --> 0);
    return 0;
}



#include <stdio.h>
int main(void){
     int x = 10;

     while( x-- > 0 ){ // x goes to 0

       printf("%d ", x);
     }

     return 0;
}

공간 만 있으면 재미있는 것처럼 보입니다. -- 감소하고 비교합니다.




어쨌든, 이제 우리는 "간다"연산자를 사용합니다. "-->" 는 방향으로 기억하기 쉽고 "x가 0으로가는 동안"은 의미 직설법입니다.

또한 일부 플랫폼에서는 "for (x = 10; x > 0; x --)" 보다 약간 더 효율적입니다.




그것은

while (x-- > 0)



왜 모든 합병증?

원래 질문에 대한 간단한 대답은 다음과 같습니다.

#include <stdio.h>
int main()
{
    int x = 10;
    while (x > 0) 
    {
        printf("%d ", x);
        x = x-1;
    }
}

똑같은 일을한다. 당신이 이렇게해야한다고 말하는 것은 아니지만, 똑같은 일을하고 한 게시물에 질문에 대답했을 것입니다.

x--는 위의 경우에 단지 축약 형이며,>는 정상적인보다 큰 연산자입니다. 아니 큰 수수께끼!

요즘에는 복잡한 일을 너무 많이하는 사람들이 있습니다.)




--감소 연산자이고 >더 큰 연산자입니다.

두 연산자는 --> 와 같은 단일 연산자로 적용됩니다.




while( x-- > 0 )

그게 어떻게 해석되는거야.




사실, x 는 post-decrementing이고 그 조건은 검사되고 있습니다. 그것은 아닙니다 --> , (x --> (x--) > 0

참고 : x 값은 조건을 확인한 후에 사후 감소하기 때문에 변경됩니다. 유사한 경우도 발생할 수 있습니다. 예를 들면 다음과 같습니다.

-->    x-->0
++>    x++>0
-->=   x-->=0
++>=   x++>=0



이 코드를 실행할 때 내 컴파일러가 9876543210을 출력합니다.

#include <iostream>
int main()
{
    int x = 10;

    while( x --> 0 ) // x goes to 0
    {
        std::cout << x;
    }
}

예상대로. while( x > 0) 은 실제로 while( x > 0) 합니다. x-- 게시물은 x 감소시킵니다.

while( x > 0 ) 
{
    x--;
    std::cout << x;
}

같은 것을 쓰는 다른 방법입니다.

하지만 원본이 "x가 0으로가는 동안"과 같이 보이는 것이 좋습니다.






Related