#include<stdio.h>
int t=0;
int sub(int *);
int main(){
int i;
for(i=1;i<4;i++)
printf("%d\n",sub(&i));
return 0;
}
int sub(int *s){
*s=*s+1;
t=t+*s;
return t;
}
你s指向i的地址。对*s加1,i也就加1,这样i循环就跳过了一次。
第1次循环i是1 调用sub(&i) *s加1,i也就加1变成2,t加2为2,返回输出2。
之后循环i++ i变成3。
第2次循环i就是3 调用sub(&i) *s加1,i也就加1变成4,t加4为6,返回输出6。
之后循环i++ i变成4结束循环。
如有帮助,望采纳!谢谢!
函数参数为什麽要用指针呢???用值参就好了啊
由于你用了指针,导致函数内部修改参数时,引起传入变量值的变更,每次循环循环变量多加了1