x*x不一定大于等于0。
代码全览
#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;
}
运行结果
说明
每一种类型所能表示的数据有范围,当超出这个范围时就会产生溢出。
如 64位机下 int 型能表示的范围是-2的63次方到2的63次方-1,一旦超出该范围,就会溢出。