웹사이트 검색

Linux C 프로그래밍 자습서 12부 - 할당 연산자 및 조건식


진행 중인 이 C 프로그래밍 자습서 시리즈에서 우리는 이미 산술, 논리 및 관계 연산자와 if 및 while과 같은 조건부 루프와 같은 몇 가지 기본 항목에 대해 논의했습니다. 추가로 이 자습서에서는 대입 연산자(= 제외) 및 조건식에 중점을 둘 것입니다.

할당 연산자부터 시작하겠습니다. 지금까지 기본 C 프로그램을 만들었다면(특히 튜토리얼 시리즈를 따라한 후에 갖게 될 것이라고 확신합니다) 다음과 유사한 작업을 수행했을 가능성이 높습니다.

a = a + 1;

오른쪽?

오늘 배울 새로운 것은 이 표현을 다음과 같이 다시 작성할 수 있다는 것입니다.

a += 1;

예, +=는 연산자이며 대입 연산자라고도 합니다.

이제 이와 같은 대입 연산자를 사용하면 코드가 더 간결하고 읽기 쉬워진다고 하면 일부 여러분은 우리가 사용한 예제의 맥락에서 증가 연산자가 get의 값을 확인하기 때문에 똑같이 좋았을 것이라고 주장할 수 있습니다. 1 증가했습니다.

a++;

동의하지만 다음과 같은 다른 시나리오를 생각해 보십시오.

b = b + 10;
b = b + c

이런 경우 할당 연산자를 사용하면 확실히 코드 작성, 읽기 및 검토가 한 단계 쉬워집니다.

아직도 확신이 서지 않습니까? 아마도 다음의 일반적인 예는 할당 연산자의 가치에 대해 더 나은 아이디어를 제공할 것입니다. 구경하다:

arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] = arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] + 5 

두 배열(= 연산자의 양쪽에 있음)이 동일한 값을 참조하는지 여부를 확인해야 하기 때문에 이 코드 줄을 이해하는 데 특히 시간이 걸립니다. 이 경우에는 그렇게 하므로 더 나은 방법은 다음과 같은 방식으로 할당 연산자를 사용하는 것입니다.

arr1[arr2[integer1 + integer2] + arr3[integer3 + integer4] + arr4 [integer5 + integer6]] += 5;

따라서 이 경우 할당 연산자를 사용하면 행을 매우 쉽게 이해할 수 있을 뿐만 아니라 컴파일러가 효율적인 코드를 생성하는 데 도움이 될 수 있다는 점에서 컴파일러가 더 친숙해졌습니다.

이제 할당 연산자가 유용하다는 사실에 대해 확신했으므로(실제로 그러기를 바랍니다) 해당하는 이항 연산자가 있는 연산자 목록은 다음과 같습니다.

+ - * / % << >> & ^ |

목록의 처음 5개 연산자는 지금까지 자습서에서 이미 논의했습니다. 마지막 5개는 비트 연산자이며 향후 자습서 중 하나에서 이에 대해 논의할 것입니다. 한편, 다음은 이러한 연산자 중 일부에 해당하는 할당 연산자에 대한 빠른 참조입니다.

a += b;
a -= b;
a *= b;
a /= b;
a %= b;

따라서 일반적으로 다음 사항에 유의할 수 있습니다.

expression1 = (expression1) op (expression2)

다음과 같이 표현할 수 있습니다.

expression1 op= expression2

여기서 op는 +, -, * 등과 같이 사용 중인 연산자입니다.

다음 표현 및 이와 유사한 표현에 유의하십시오.

a *= b - c 

다음과 같이 확장됩니다.

a = a * (b-c)

할당 연산자의 개념을 최소한 기본 수준에서 명확하게 할 수 있었으면 합니다. 계속해서 조건식에 대해 빠르게 논의하겠습니다.

다음 예를 들어 보십시오.

if(a==b)
c = c + 1;
else
c = c - 1;

조건식을 사용하면 이와 같은 논리를 한 줄에 작성할 수 있습니다. 방법은 다음과 같습니다.

c = (a==b) ? (c+1) : (c -1)

따라서 여기에서 먼저 조건(a==b)을 확인합니다. 참이면 (c+1)이 c에 할당되고 그렇지 않으면 (c-1)이 c에 할당됩니다. 더 명확하게 하기 위한 샘플 코드는 다음과 같습니다.

int main()
{
int a = 6, b = 5, c = 9;

c = (a==b) ? (c+1) : (c -1) ;

printf("\n %d \n", c);

return 0;
}

여기서 a는 b와 같지 않기 때문에 c가 할당됩니다(c-1). 이는 c의 새 값이 8이 됨을 의미합니다. 필요한 경우를 대비하여 조건식의 일반 형식은 다음과 같습니다.

expression1 ? expression2 : expression3

할당 연산자와 조건식에 대한 기본적인 아이디어를 얻었기를 바랍니다. 이제 일상적인 코딩 활동에 이러한 기능을 사용하는 것이 좋습니다. 어떤 종류의 문제가 발생하면 여기에 의견을 남기는 것을 잊지 마십시오.