In the following piece of code, to calculate strlen,

```
int s(const char* str)
{   
    int count=0;        
    while(*str++) count++;
    return count;
}

```

You can see that the argument str is const. But, the compiler does not complain when I do a str++. My question is

**When passing pointers as arguments to a C function, if is is qualified with const, How can I still perform pointer arithmetic on it? What is const in the above function?**