함수에 인자를 전달할때 사용하는 구분자로만 생각하는 경우가 많다.
하지만 정확한 의미로 기억하자면 여러개의 문장을 하나로 만들어주는 역할을 한다고 볼 수 있다. 뭔 생뚱 맞는 소리를 한다고 생각하는 사람도 있을것이다.
C언어는 하나의 문장은 ";" 세미콜론으로 끝나고 두문장이 하나로 합쳐질때 , 를 사용하게 된다.
예를 들어 보면
a=10;
b=20;
두 문장이 있을때
a=10,a=20;
이런식으로 사용할 수 있다.
이런건 언제 사용할까?
반드시 한 문장을 사용해야하는 곳이 있다. 예를 들어 for( A ; B ; C ) 문장안에 들어가는 A,B,C의 내용은 하나의 문장외에는 사용할 수 없다.예를 들어보자
for(i=0,j=0;i<10;i++,j++,k++){
}
i=0,j=0 와 i++,j++,k++ 등으로 여러개의 문장이 하나의 문장으로 표현하였다.
또한 함수의 인자로 사용되는 부분에서도 여러개의 문장이라고 생각할 수 있다.
마지막으로 우선순위가 어떻게 되는지 알아보자?
즉
i = 0;
fun(i++,i++,i++) 이렇게 인자로 넘기면 인자는 어떻게 될까?
아래 예제를 보자
#include <stdio.h> int main(void) { int i; i = 0; fun(i++,i++,i++); return 0; } int fun(int a,int b,int c) { printf("%d,%d,%d",a,b,c); return 0; }
결과는 2,1,0 가 된다.
실행 순서는 오른쪽에서 왼쪽으로 "<-" 실행 순서가 된다.
정리하면
여러개의 문장을 하나로 만들어주는 역할을 함.
실행 순서는 오른쪽에서 왼쪽으로 "<-" 실행 순서가 된다.
댓글 없음:
댓글 쓰기