Гарантированно ли '\ 0' равно 0?

Я написал эту функцию на C, которая предназначена для перебора строки до следующего символа, отличного от пробела:

char * iterate_through_whitespace(unsigned char * i){
    while(*i && *(i++) <= 32);
    return i-1;
}

Кажется, она работает довольно хорошо, но мне интересно, можно ли предположить, что * i будет оценено как ложное в ситуации, когда * i == '\ 0' , и это не будет выполнять итерацию за пределами конца строки. Он хорошо работает на моем компьютере, но мне интересно, будет ли он вести себя так же при компиляции на других машинах.

20
задан Martin Smith 25 September 2011 в 22:57
поделиться