下列函数定义中,有语法错误的是()
A. void fun(int x, int *y){*x *= *y;}
B. void fun(int *x, int y){*x += y;}
C. int * fun(int *x, int y){return x += y;}
D. void fun(int x, int *y){x *= *y;}
x不是指针
int * a ; a+=5;<=>a=a+5;
指针+int 还是一个指针,只不过移动了int位而已。
A
1.void fun(i...
用户登录可进行刷题及查看答案
1.void fun(int x, int *y){*x *= *y;} 解析:x为整形,不是指针,所以用*取值错误。
2.void fun(int *x, int y){*x += y;} 解析:x为int型指针,*对x地址取值后 *x = *x+y,表达式正确;
3.int * fun(int *x, int y){return x += y;} 解析:fun返回值为int指针, return x += y可以转化为 地址位移y个int大小,将位移后的值再付给x, x作为函数返回。故正确
4.void fun(int x, int *y){x *= *y;} 解析:x*=*y;-> x=x*(*y); 因为y是int指针,*取值和int相乘,表达式正确;
故题1错误。
登录后提交答案