在书中的位置是66页,原代码如下:
/* 获取下一个运算符或者数值操作值*/
int getop(char s[])
{
int i,c;
while((s[0]=c=getch())==' '||c=='\t') //跳过空格与换行符
;
s[1]='\0'; //?????
if(!isdigit(c)&&c!='.') //不是数,也就是说是运算符?
return c;
i=0;
if(isdigit(c)) //收集整数部分
while(isdigit(s[++i]=c=getch()))
;
if(c=='.') //收集小数部分
while(isdigit(s[++i]=c=getch()))
;
s[i]='\0';
if(c!=EOF)
ungetch(c);
return NUMBER;
}
我不太明白 s[1]='\0'; 这个语句有什么意义,在收集整数和小数的时候这个语句存入的数据又会被覆盖,所以为什么要加这个语句?
还有一个语句我不太清楚它的意思。
if(!isdigit(c)&&c!='.')
return c;
书中注释是“不是数”,那么也就是说它是运算符了?这个我是想确认一下。
如果哪位能解决我的问题,我真是感激不尽!