C언어 콤마(,) 연산자?

Posted 2012. 5. 22. 15:57
전에 하다가 자꾸 안돼서 짜잉났는데 과제낼때 질문한 내용 적으려면 적으라 해서 물어봤는데

답장이 왔다,, 근데 물어보기 잘한듯?

나의 코딩 습관은 반복문 같은건 가능한 주요 코드만 쓰고 반복문에 돌아가는 i ,j 같은 변수들은 가능한 줄이려고 한다.

예를들어
while(6 > i++)
for(i=0 , j=0 ; i<5 ; i++, j=j+2)
와 같은 코드를 즐겨쓴다.

하지만 이번에 과제하면서 귀찮은 마음에 역시 for문의 조건문에 콤마(,)를 어김없이 붙였다,,,

자꾸 에러가 나더라;; 그래서 for문을 잘 살펴봤더니 흐음,,,

자꾸 무한루프 돌았다. 쨋든 몇가지 실험하다가 뭔가 규칙을 잘 모르겠어서 질문했었다.

Re: [자료구조] HW#5

순서대로 연산을 수행하고 전체 연산 결과는 마지막 연산의 결과가 됨..
1,0
이라고 쓰면..
계산 결과는 0이됨.. 그래서 for문 반복이 안되었던 거고

0,1
이라고 쓰면
계산결과는 1... 그래서 무한 반복

아하.... 그래서 그때 이상했던 거구나,,,,

ex)

for( i = 0 , k = 4 ; i < 5 , k > 3 ; i++, k-- )
printf("TEST\n");

결과:
TEST

~~~이번엔 조건문의 k와 i 를 바꿔서~~~

for( i = 0 , k = 4 ; k > 3 , i < 5 ; i++, k-- )
printf("TEST\n");

결과:
TEST
TEST
TEST
TEST
TEST


오호,,, 유용하게 쓸일이 있긴 있을듯.
이제 고작 쬐금 한 실력가지고는 어디다 쓸지는 나중에 생각해 봐야겠다.

 

« PREV : 1 : ··· : 37 : 38 : 39 : 40 : 41 : 42 : 43 : NEXT »