【isspace】...){longn;intsign;for(;isspace(*s);s++);sign=(*s=='-')?-1:1;...

发布时间:2021-03-21 16:25:48

给fun函数的形参s传送字符串:“]]6354abcc”(其中]表示空格字符,则函数的返回值是 long fun(char s[]) {long n;int sign;for (;isspace(*s);s++);sign=(*s=='-')?-1:1; if(*s=='+'||*s=='-')s++;for (n=0;isdigit(*s);s++) n=10*n+(*s-'0'); return sign*n;}答案是6354

网友回答

【答案】 首先函数传递一个数组,首地址为S,即']'所在的地址.一个for循环,之后把S移动到非空格,即是数字6之处,然后把一个三元运算符(*s=='-')?-1;1的结果赋值给sign,此时sign结果为1.
  if 条件语句执行完之后,s地址任然是6所在处.接下来一个for循环,循环了4次每次的结果为:
  n=6
  n=63
  n=635
  n=6354
  最后乘以sing=1,
  返回6354.
  若有纰漏之处,还望指正.
以上问题属网友观点,不代表本站立场,仅供参考!