1、
下面的函数被用来计算某个整数的平方,它能实现预期设计目标吗?如果不能,试回答存在什么问题:
|
1
2
3
4
|
int square( volatile int *ptr ){ return *ptr * *ptr;} |
由于*ptr的值可能在两次取值语句之间发生改变,因此a和b可能是不同的。结果,这段代码可能返回的不是你所期望的平方值!正确的代码如下:
|
1
2
3
4
5
6
|
long square( volatile int *ptr ){ int a; a = *ptr; return a * a;} |