If条件的判断中为什么要在判断结束后继续向下进行

img


If条件判断flag是否为-1后,为什么还要再继续的q++判断。即使后面有的数也为负数,但是flag仍为-1,不会有负负相乘得正的情况呀。

如果传入的字符串是负号开头的,经过if语句后,指针已经向后移了一位了,所以进入while循环得到的数绝对是整数,最后flag=-1,返回flag*s ,结果一定是负数。望采纳!

q是一个字符指针,if是检测该数是否是负数,是的话则将flag变为-1。s则是一个正数,因为在检测到负号后q++了,也就相当于跳过了负号;最后s*flag得到结果