c语言程序求运算的过程,结果是如何得出来的

求指点这个程序如何运行的 结果是1
#include"stdio.h"
void fun(int a)
{
++a;
}
main()
{
int i,a=1;
for(i=0;i<10;i++)
fun(a);
printf("%d\n",a);
}

函数未传址调用,不改变main中a不管,就是1

这不很正常吗。你是将值传入进去,并且没有返回值。他相当于复制了一个a,然后将复制的a +1 但是a本身没有+1,所以值是1
要想a的值为11,则需要将地址传进去,直接改变地址中的值。

void fun(int &a)
{
    ++a;
}
int main()
{
    int i,a=1;
    for(i=0;i<10;i++)
        fun(a);
    printf("%d\n",a);
    return 0;
}

img

fun(a); 值传递,函数里a的值对外面的a没任何影响,各算各的。最终结果是a的值没变。