Search code examples
cintpunctuation

Using Exclamation Marks '!' in C


I have come across a problem involving exclamation marks and integers whilst reading a code in my reference book.

Let us say I have declared an integer variable named number - int number = 0;

I then use a while function involving an exclamation mark and number

while(!number)
{
    ...
}

I am confused with this because I do not know what does !number mean and what would be possible returned results? I am not sure if this can be used, but as I said, I saw it in my book.

Therefore, it would be great if someone could tell me what does !number mean and what does it evaluate?

Thank you in advance.


Solution

  • We can treat ! as not. So if a number is non-zero (either positive or negative) it returns Zero. If it is zero, it returns 1.

    int i = 13;
    printf("i = %d, !i = %d\n", i, !i);
    printf("!0 = %d\n", !(0));