在C语言函数调用中,什么时候才用return返回,详细一点,最好有对比例子...
是因为需要返回值才用 return,而不是因为return才有返回值。 比如调用函数是求两个数的平方和,就需要返回值带入结果。如果是用于两个数交换的函数就不需要返回值,因为它只是执行了一种做法。
也就是说在printf(111111);后面加了个return,就表示结束该函数,返回主函数中去了![编辑本段] 关于C语言中return的一些总结 return是C++预定义的语句,它提供了种植函数执行的一种放大。
return ()表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,返回值的类型由return后面的参数确定;Return语句可以用来返变量或指针中的值,也可以用来返回0,表示返回为空,返回一个代数值,通常在子函数zd的末尾。
在C语言中的函数调用过程中保留现场怎么回事?
1、保留现场 就是字面的意思,保留现场 比如,你要到某地去,走在路上时,看到路边有个屋子,你想去看一下,但是又怕迷路了,那么只好记住你现在所在的位置(也就是保留现场)。然后到屋子参观一番后,离开屋子时,只要返回到之前所记的位置就行了。
2、需要学习的知识点:函数调用约定。如果你不知道程序是如何调用printf这个函数的,这个问题你就无法理解。简单的说,在调用函数之前,我们要保留“现场”,因为我们知道,程序执行的时候,是要“进入”函数中去的,等函数执行完了,回到原来的执行的地方,继续向下。这个过程,C语言是从右向左压参数的。
3、如果该数值是 子函数的局部变量,可以声明为static类型的局部变量,可以保证在该子函数结束后,该变量的值保持在函数结束时的数值不变。如果是非static局部变量,可以使用全局变量进行保存,跟踪该变量的值。如果没有全局变量,可以使用函数返回,将该变量作为返回值,或者使用引用参数返回该变量值。
4、因为mx你声明有返回值的,所以在main里再声明一个变量如 int b 然后 b=mx(15);coutb aendl;C语言规定,不带括号的函数都返回函数的地址。相当于指针了,如mx就相当于指针了。
5、在变量前加static就可以了吧,比如int a=0;那么static int a=0;这个就是静态变量了。静态变量只初始化一次,因此,改变后的值在程序中一直有效,直到程序结束。
C语言:函数调用时在函数内声明的变量所得到的值将无法...
因为函数调用时,参数是“值传递”,把参数的值传递给了被调用函数栈上的相同类型的变量。在函数内入参的值被修改之后,你修改的是被调用函数栈上的变量的值,而不是被调用函数栈之外的,调用函数之前作为参数值传递给被调用函数的参数的值。
如果通过函数传参方式调用,并且不是传的指针,那就不会改变原来的值,如果想改变全局变量的值,可以直接在函数中使用,不需要传参。
调用函数,只能改变指针指向的内存空间的内容,不能改变实参指针变量的值。我觉得题主对指针变量,还算有一点了解。指针变量,其实也就是一个变量,但它的值是一块内存的地址。
但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。外部变量是在函数外部定义的全局变量,它的作用域是从变量的定义处开始,到本程序文件的 结尾。在此作用域内,全局变量可为各个函数所引用。编译时将外部变量分配在静态存储区。
int b;//这就是局部变量,只在本函数有效,如果想在调用fun函数时让fun也使用该变量,需要把这个变量的地址作为参数传递过去。printf(%d,b);return 0;} 注意:c语言中允许局部变量和全局变量同名,但是同名的局部变量会屏蔽全局变量,实际代码避免同名。
可以,static在C语言中是表示一个变量为静态变量的,而不是常量,也不是不可变的变量。所谓的静态变量有两种情况,一种是静态全局变量,一种是静态局部变量。
一道C语言问题
1、根据题意每天从区间1~N中,依次深度-1,遇到某个深度0时停止作业,所修改的区间就是当日作业区间。独立函数实现一天作业(workForDay)。参数flag为1显示作业过程,如不需要传0。init函数为输入并返回动态数组。
2、这样写才正确,所以不正确的是选项C.- D:if圆括号内字符常量的值为0,也就是为假,则不执行后面花括号内的语句,此选项没有任何问题。
3、答案是:B. 7 4 理由如下:第一个循环,整个循环体执行后,输出(x=)7,这个没有疑问,执行完循环,for(x=10;x3;x--)执行x--操作,此时x=6,满足x3条件,进入第二个循环。
4、输入有范围,两个变量输入都需要验证,方法变量处置范围以外,循环判断输入。天数循环计数,日期0~6周期自增。用变量累加计数结果。
c语言中,函数形参和实参必须相同么?
通常必须要一致。不排除有些函数可以省略部分调用参数,但在函数体中有相关的默认处理代码,否则函数会出错。在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数,以减少重复编写程序段的工作量。
对的。这是很基本的:函数的实参个数和形参个数相等,实参与对应的形参类型一致。如果用表达式,表达式类型 应与对应形参 一致。
编译器在编译时默认会做类型检查,发现行参与实参类型不一致时会提示编译警告,如果确认赋值调用不存在赋值不兼容,且不会发生溢值现象,可以使用强制类型转换,跳开编译警告。此外,可以也在编译选项中取消类型检查。所以,行参和实参的类型最好一致,应该不是必须。
在c语言函数调用中,是调用数组会改变原有值,还是单个的变量??
要么数组是全局变量。要么函数形式参数用指针。
总而言之:参数指向值的,都不会变;参数指向地址的都会变(数组也是指向地址的。
如果通过函数传参方式调用,并且不是传的指针,那就不会改变原来的值,如果想改变全局变量的值,可以直接在函数中使用,不需要传参。
变量为数组,则调用者在调用时,传递的是一个地址值(数组名就是个地址),这好比对方告诉你他家的地址,通过这个地址,你可以访问他家中的任何人、物,你在这个地址中的一举一动都在影响这个家里的变化。变量为元素,则调用者在调用时,传递的是一个数的数值。
对于全局变量,如果在函数中修改了值,则全局变量的值就会被改变,在其他函数中访问的就是修改后的值;但是,如果在函数中定义了跟全局变量名称一样的局部变量,则函数中修改的是局部变量,全局变量的值是无法被修改的。