十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
函数参数和
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、成都网站制作、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的武乡网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
返回值
三种传递方式:值传递、指针传递和引用传递
引用与指针的比较
引用是
C++中的概念,初学者容易把引用和指针混淆一起。一下程序中,n
是m
的一个引用(
reference
),m
是被引用物(referent)。
int
m;
int
n
=
m;
n
相当于m
的别名(绰号),对n
的任何操作就是对m
的操作。所以n
既不是m
的拷贝,也不是指向m
的指针,其实n
就是m
它自己。
C++语言
中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递。
以下是“值传递”的示例程序。由于Func1
函数体内的x
是
外部变量
n
的一份拷贝,改变x
的值不会影响n,
所以n
的值仍然是0。
void
Func1(int
x)
{
x
=
x
+
10;
}
int
n
=
0;
Func1(n);
cout
“n
=
”
n
endl;
//
n
=
以下是“指针传递”的示例程序。由于Func2
函数体内的x
是指向外部变量n
的指针,改变该指针的内容将导致n的值改变,所以n
的值成为10。
void
Func2(int
*x)
{
(*
x)
=
(*
x)
+
10;
}
int
n
=
0;
Func2(n);
cout
“n
=
”
n
endl;
//
n
=
10
以下是“引用传递”的示例程序。由于Func3
函数体内的x
是外部变量n
的引用,x
和n
是同一个东西,改变x
等于改变n,所以n
的值成为10。
void
Func3(int
x)
{
x
=
x
+
10;
}
int
n
=
0;
Func3(n);
cout
“n
=
”
n
endl;
//
n
=
10
对比上述三个示例程序,会发现“引用传递”的性质象“指针传递”,而书写方式象“值传递”。实际上“引用”可以做的任何事情“指针”也都能够做,为什么还要“引用”这东西?
答案是“用适当的工具做恰如其分的工作”。
直接跳回一个地方 C用setjmp, longjmp C++则用try catch throw的异常处理机制 return则返回调用的函数举一个C++的例子,函数从funcB直接返回了主函数main: int funcA() { int a; funcB(); //之后的语句都不会执行 a = 1; a *= 2; return a; } void funcB() { throw int(0); } int main() { int r = 0; try { r = funcA(); } catch (...) { // 该程序直接跳到这里 // r仍然等于0 } return 0; }
你可以这么理解,比如我们定义了一个函数fun(),如果这个函数有返回值,那么在调用程序里面(比如主函数)就可以把这个函数当成一个数使用;如果没有返回值,那么通常他就是一个独立的语句存在。
比如fun函数里面有个return 0;表示返回值是零,那么在调用函数里面就可以存在诸如
a=fun();b=a+fun();if(fun()=0{};……这类的语句,表示a=0;b=a+0;if(00){};等等,当然也可能是返回一个变量的值,你个指针的值是一样的。
如果没有return 语句,那么函数没有返回值,调用函数里面就不能把他当做一个数值来使用,会出现:
fun();单独成句的语句,在fun()里面可能进行了一些操作,但不需要结果。
C语言自带的函数通常都有返回值,计算函数返回计算结果,操作函数返回操作结果(成功返回1,失败返回0)
中断里面不能用形参和返回值!!!
具体的做法是声明一个全局变量,在中断中改变变量的值或者说状态。
主程序就负责判断这个变量的状态,根据状态做出选择,如果状态比较多就用SWITCH,否则if就可以了。
对于你补充的问题可以这样
在函数里,需要退出的地方写上,return;
if(有推出键按下) retrun;
c语言怎样从分函数回到主函数的方法。
如下参考:
1.通过使用指针,在调用函数时,传递一个地址参数并使用指针更改其值;因此,修改后的值成为原始参数,如下所示。
2.使用指针返回的结果如下图所示。
3.使用structure:由于结构是用户定义的数据类型,因此可以定义一个包含两个整型变量的结构,在这些变量中存储越来越大和越来越小的值,然后使用该结构的值。
4.通过使用这个结构,下面显示的结果将返回,如下图。
5.通过使用数组,当数组作为参数跟踪传递时,基地址将传递给函数,因此对数组副本所做的任何更改都将更改为原始数组,如下图。
6.通过使用数组,返回的结果如下图所示。