先运行如下代码,看看结果:
#include <stdio.h>
#include <stdlib.h>
int sq(int x) {
return x*x;
}
int main(int argc, char *argv[]) {
int i;
for (i = 1; i < argc; i++) {
int x = atoi(argv[i]);
int sx = sq(x);
printf("sq(%d) = %d\n", x, sx);
}
return 0;
}
运行结果如下:
可以从结果看出:有部分数据超出int型数据类型范围,造成溢出,得出错误数据,我们可以先看下各种数据类型的取值范围,如下图:
,从上述结论来说:我们需要注意使用数据类型的范围,谨慎选择所需数据类型,避免出现溢出。