3). 下面的函数有什么错误:int squar

16 查阅
3). 下面的函数有什么错误:int square(volatile int *ptr){return *ptr * *ptr;}

参考答案:

正确答案:

\r\n

3). 这段代码的有个恶作剧。这段代码的目的
是用来返指针*ptr 指向值的平方,但是,由于*ptr
指向一个volatile 型参数,编译器将产生类似下面
的代码:
int square(volatile int *ptr)
{
int a,b;
a = *ptr;
b = *ptr;
return a * b;
}
由于*ptr的值可能被意想不到地该变,因此a
48

函数