return表示中止当前函数的运行,并将操作权返回给调用者。 如果是在main函数中,表示将操作权返回给操作系统。
return不是必须要返回一个值。 void func(void) { ...... ...... return; } 当然,就算不写return,在函数执行完毕后也会返回操作权给调用者。写return是一种清晰的风格,可以防止一些意外的错误。所以书上只说应该写,而不是必须写。 如果符合某个条件要退出的话,可以用return返回,否则可以不写这句代码的,当程序执行到“}”时会自动返回,这个问题其实你自己到机器上试一下就知道了。不过作为一个良好的编程习惯,每个函数都有返回语句倒是对的,这样更有可读性,并利于程序的维护~~~~
return 指令一个是返回一个指定数据给主调函数,
另外的一个作用就是 结束 所在函数的执行 ...
子函数中的运算是不能改变main()中已经定义的变量 int add(int a, int b) { int c; c=a+b; } main() { int a=1,b=2, c=0; add(a,b); printf("/nc=%d/n", c); } 你看看 最后结果还是c=0; 因为计算机执行一个程序的时候 他只看到main(); 他十分忠诚的 从main()的第一句 一直执行到最后一句 ; 中间的那个 add()调用; 这时main()函数被挂起 ; 也就是停止运行 系统会把main()放在一块内存x中 ; 这时 系统会把一片内存y划分给add()函数; 也就是说 main()中的abc;和add()中的abc; 并不是同一个东西; 他们只是在数值上相等罢了; 系统首先把a;b;的值传给add; 然后运行; c=3; 然后系统没有发现add中有return; 也就是 子函数做完了运算; 并没把内存y中的结果送给main();这时候 add运行结束;系统唤醒内存x中的main();开始运行下一句 这时候 ;add函数做的一切 都是白干了;他并没有把他的结果上交给main()函数;所以c仍然是0;add(int a, int b) { int c; c=a+b; return c; } main() { int a=1, b=2, c=0; c=add(a,b); printf("/nc=%d/n",c); /*还可以这样写*/ printf("/nc=%d/n",add(a,b)); } 想要通过子函数来改变main()中的东西; 有两个方法:1 return ; 2 通过指针; 这里 指针我就不说了 到了c#就没有指针了 我是学c的 才大一 ; 我们用的最多的是指针;一般不用return ;
http://blog.csdn.net/holandstone/article/details/7613261