2015-02-06 3 views
0

이 코드를 실행하려고합니다.이 코드는 성공적으로 실행됩니다. 그러나 변수를 상수로 변경하면 컴파일 오류가 발생합니다. 잘 작동C 문에서 컴파일 오류가 발생했습니다.

내 코드 : 나는 그것의 출력이 5 인 코드를 실행하지만, 나는 코드의이 세그먼트 실행할 때

int a =5,b=6,c=7; 
int d; 
d = a,b,c; 
printf("%d",d); 

가 :

d = 2,6,7; 
printf("%d",d); 

을 내가 컴파일 error.I를 ​​얻을 수 다른 컴파일러에서 나도 노력했다. 그러나 오류는 여전히 존재합니다. 내가 뭘 잘못하고있어.

+0

'INT d 개를 사용 : 그것은 나를 위해 아래의 코드를 작동

; d = 2,6,7; -이 코드 조각은 어떻게해야한다고 생각하니? – DevSolar

+0

나는이 큐에 C 프로세스로 2를 할당 할 것이라고 생각한다. – Dalvik

+1

쉼표 연산자에 대해 읽고 터보 C를 사용하지 않는다 –

답변

3

첫 번째 코드는 변수와 할당 d = a와 b를 사용하고 그냥 표현으로, 그래서 코드 실행 C :

int main(int argc, char const *argv[]) 
{ 
int a =5,b=5,c=7; 
int d; 
d = a,b,c+1; 
printf("%d",d); 
return 0; 
} 

당신은 bc+1 그냥 5을 평가받을를 거기에 넣어 useless.But 당신이 쉼표 식을 포함하고이 코드를 실행하면 :

int main(int argc, char const *argv[]) 
{ 
int a =5,b=5,c=7; 
int d; 
d = (a,b,c+1); 
printf("%d",d); 
return 0; 
} 

을 당신은 8은 마지막 값 식으로 얻을. 당신은 ()와 표현으로 숫자 놀이를 사용할 수 있습니다

int main(int argc, char const *argv[]) 
{ 
int a =5,b=5,c=7; 
int d; 
d = (0,3,1); 
printf("%d",d); 
return 0; 
} 

마지막 번호 나 중요한 데이터를 얻을.

int main(int argc, char const *argv[]) 
{ 
int a =5,b=5,c=7; 
int d; 
d = 0,3+1,1-1; 
printf("%d",d); 
return 0; 
} 

그것을 출력 0이지만 ()하지 않으면 무의미이 방법에 의해, 왜 그냥 d = 0;

관련 문제