---
title: 3.14 Truth Value of Integer Expressions
description: "In C, an integer expression can be used as a condition. The value `0` represents false, while any non-zero value represents true. ``` #include int main() { int a = 0; int b = 10; int c = -5; if…"
url: "https://edcret.in/docs/c-programming/operators-and-expressions/3-14-truth-value-of-integer-expressions/"
updated: "2026-09-07"
category: C Programming / Operators and Expressions
---

# 3.14 Truth Value of Integer Expressions

In C, an integer expression can be used as a condition. The value `0` represents false, while any non-zero value represents true.

```
#include <stdio.h>

int main()
{
    int a = 0;
    int b = 10;
    int c = -5;

    if (a)
    {
        printf("a is true\n");
    }

    if (b)
    {
        printf("b is true\n");
    }

    if (c)
    {
        printf("c is true\n");
    }

    return 0;
}
```

### Example Output

```
b is true
c is true
```

### Explanation

The value of `a` is `0`, so it represents a false condition:

```
if (a)
```

The values of `b` and `c` are non-zero, so both represent true conditions:

```
if (b)
if (c)
```

This rule also applies to integer expressions:

```
if (10 - 10)
{
    printf("True\n");
}
```

`10 - 10` produces `0`, so the block is not executed.

```
if (10 - 5)
{
    printf("True\n");
}
```

`10 - 5` produces `5`, which is non-zero, so the block is executed.

In C, integer expressions used as conditions do not need to produce specifically `0` or `1`; **zero is false and any non-zero value is true**.
