set 1 2 3 4 5 6 7 8
while [ "$#" -gt 0 ]
do C="$(($1+$2))"
shift 2
done
for doesn't allow for two simultaneous assignments in that way. So get an array and shift it away at your desired interval. If you use the standard shell $@ array as I do above, then you'll always be working with your first two positionals $1 and $2. If you use some kind of extension array then you'll be working with either ${array[0]} and ${array[1]} or ${array[1]} and ${array[2]} depending on your shell.
Else, with a for loop you can encode some kind of delimiter into each argument:
for x in 1+2 3+4 5+6 7+8
do C="$(($x))"
done
...which actually works perfectly here, but that is usually not as cleanly done.
AandBand the sumC=A+B. Have modified the code a bit.