首页 > 编程知识 正文

c语言用户自定义类型,c语言变量的声明和定义

时间:2023-05-05 19:19:49 阅读:9805 作者:2693

c语言定义函数和声明函数

there can be4differenttypesofuser-defined functions,they are:

有四种类型的用户定义函数:

functionwithnoargumentsandnoreturnvalue

没有参数也没有返回值的函数

functionwithnoargumentsandareturnvalue

没有参数和返回值的函数

functionwithargumentsandnoreturnvalue

有参数、没有返回值的函数

functionwithargumentsandareturnvalue

具有参数和返回值的函数

Below,wewilldiscussaboutallthesetypes,along with程序执行程序。

以下是所有这些类型和程序的示例。

无参数、无返回值的函数(functionwithnoargumentsandnoreturnvalue ) suchfunctionscaneitherbeusedtodisplayinformationortheyarecompletelyelyyinetue

这些功能可以用于显示信息,也可以完全依赖于用户输入。

Below is an example of a function,which takes2numbersasinputfromuser,anddisplaywhichisthegreaternumber。

以下是使用两个数字作为用户输入并显示大数字的函数的示例。

#includestdio.hvoid greatNum (;//功能描述int main () { greatNum );//功能呼叫返回0; }void greatNum ()//functiondefinition ) intI,j; printf (enter2numbersthatyouwanttocompare…); scanf('%d%d ),I,j ); if(Ij ) { printf (thegreaternumberis : % d ),I ); } else { printf (' thegreaternumberis : % d ',j ); }无参数和返回值的函数(functionwithnoargumentsandareturnvalue ) wehavemodifiedtheaboveexampletomakethefunctiongreatnum ) returnthenumenumm

修改了上述示例,使得函数greatNum ) )返回两个输入数字中的较大数字。

#includestdio.hint greatNum (; //function declarationint main () { int result; result=greatNum (; //functioncallprintf (' thegreaternumberis : % d ',result ); 返回0; }int greatNum ()//functiondefinition ) intI,j,greaterNum; printf (enter2numbersthatyouwanttocompare…); scanf('%d%d ),I,j ); if(Ij ) { greaterNum=i; } else { greaterNum=j; //returningtheresultreturngreaternum; }有参数且无返回值的函数(functionwithargumentsandnoreturnvalue ) weareusingthesamefunctionasexampleagainandagain,todemonstrateththe

我们有好几次

地使用与示例相同的功能,以说明解决问题的方法有很多种。

This time, we have modified the above example to make the function greatNum() take two int values as arguments, but it will not be returning anything.

这次,我们修改了上面的示例,以使函数greatNum()接受两个int值作为参数,但不会返回任何内容。

#include<stdio.h>void greatNum(int a, int b); // function declarationint main(){ int i, j; printf("Enter 2 numbers that you want to compare..."); scanf("%d%d", &i, &j); greatNum(i, j); // function call return 0;}void greatNum(int x, int y) // function definition{ if(x > y) { printf("The greater number is: %d", x); } else { printf("The greater number is: %d", y); }} 带参数和返回值的函数 (Function with arguments and a return value)

This is the best type, as this makes the function completely independent of inputs and outputs, and only the logic is defined inside the function body.

这是最好的类型,因为这使函数完全独立于输入和输出,并且仅在函数体内定义了逻辑。

#include<stdio.h>int greatNum(int a, int b); // function declarationint main(){ int i, j, result; printf("Enter 2 numbers that you want to compare..."); scanf("%d%d", &i, &j); result = greatNum(i, j); // function call printf("The greater number is: %d", result); return 0;}int greatNum(int x, int y) // function definition{ if(x > y) { return x; } else { return y; }} 功能嵌套 (Nesting of Functions)

C language also allows nesting of functions i.e to use/call one function inside another function's body. We must be careful while using nested functions, because it may lead to infinite nesting.

C语言还允许嵌套函数,即在另一个函数体内使用/调用一个函数。 使用嵌套函数时必须小心,因为它可能导致无限嵌套。

function1(){ // function1 body here function2(); // function1 body here}

If function2() also has a call for function1() inside it, then in that case, it will lead to an infinite nesting. They will keep calling each other and the program will never terminate.

如果function2()中也有对function1()的调用,则在这种情况下,它将导致无限嵌套。 他们将继续互相调用,程序将永远不会终止。

Not able to understand? Lets consider that inside the main() function, function1() is called and its execution starts, then inside function1(), we have a call for function2(), so the control of program will go to the function2(). But as function2() also has a call to function1() in its body, it will call function1(), which will again call function2(), and this will go on for infinite times, until you forcefully exit from program execution.

听不懂? 让我们考虑一下在main()函数内部,调用了function1()并开始执行,然后在function1()内部,我们对function2()进行了调用,因此程序的控制权将移交给function2()。 但是由于function2()在其主体中也有对function1()的调用,它将调用function1(),后者将再次调用function2(),这将持续无数次,直到您强制退出程序执行为止。

什么是递归? (What is Recursion?)

Recursion is a special way of nesting functions, where a function calls itself inside it. We must have certain conditions in the function to break out of the recursion, otherwise recursion will occur infinite times.

递归是嵌套函数的一种特殊方式,其中函数在其中调用自身。 函数必须具有一定的条件才能中断递归,否则递归将无限次发生。

function1(){ // function1 body function1(); // function1 body} 示例:使用递归的阶乘 (Example: Factorial of a number using Recursion) #include<stdio.h>int factorial(int x); //declaring the functionvoid main(){ int a, b; printf("Enter a number..."); scanf("%d", &a); b = factorial(a); //calling the function named factorial printf("%d", b);}int factorial(int x) //defining the function{ int r = 1; if(x == 1) return 1; else r = x*factorial(x-1); //recursion, since the function calls itself return r;}

Similarly, there are many more applications of recursion in C language. Go to the programs section, to find out more programs using recursion.

同样,在C语言中还有许多递归应用。 进入程序部分,使用递归查找更多程序。

翻译自: https://www.studytonight.com/c/type-of-functions-and-recursion.php

c语言定义函数和声明函数

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。