如果在C中没有显式命令,while循环如何递增?

scr*_*lex 1 c

我是C的新手,并且已经盯着这段代码了一段时间:

void readEntireFile(){
    int ch;
    FILE *fp;  // pointer to a file type
    fp = fopen("/some/path/file", "r"); // Change to match your path
    ch = getc(fp);
    while (ch != EOF){  // keep looping until End Of File
        putchar(ch);    // print the characters read
        ch = getc(fp);
    }
    fclose(fp);
}
Run Code Online (Sandbox Code Playgroud)

此函数创建一个指向文件的指针,获取第一个字符,只要该字符不是EOF字符,就打印出char.这一直持续到达到EOF字符.

我的问题很简单:为什么每次指针继续指向下一个字符?我看不出它是如何增加的,我真的很困惑!

编辑:除了下面的答案,这个问题也帮助我理解.

Riv*_*asa 5

int getc ( FILE * stream ); 从流中获取一个字符.

它返回当前由指定流的内部文件位置指示符指向的字符.然后内部文件位置指示器前进到下一个字符.(增量.)这条线是明确的:

ch = getc(fp);