Sí, puede cambiar el contador dentro de un bucle y a veces puede ser muy útil. Por ejemplo, al analizar los argumentos de la línea de comandos donde hay un indicador de opción seguido de un valor. Un ejemplo de esto se muestra a continuación:
introduzca el siguiente comando:
program -f filename -o option -p another_option
Código:
#include <string.h>
int main(int argc, char** argv)
{
char *filename, *option, *another_option;
if(argc > 1){
for(int i=1; i<argc; i++){
if(strcmp(argv[i],"-f")==0){
filename = argv[++i];
} else if(strcmp(argv[i],"-o")==0){
option = argv[++i];
} else if(strcmp(argv[i],"-p")==0){
another_option = argv[++i];
} else {
printf("Option \"%s\" not recognized, skipping\n",argv[i]);
continue;
}
}
} /* end if argc > 1 */
return 0;
}
El programa de ejemplo, se incrementa automáticamente el contador para acceder a la cadena de línea de comando correcto. Por supuesto, hay maneras de incorporar contadores, etc., pero solo harían que el código fuera más engorroso en este caso.
Como otros han señalado, aquí es donde muchas personas escriben errores y uno debe tener cuidado al incrementar los contadores dentro de los bucles, particularmente cuando el bucle está condicionado al valor del contador.
¡Gran ejemplo! ¡Voto ascendente! – Jay