c语言中函数形参的类型是 c语言中函数的形式参数

C语言形参是什么形参全称形式参数c语言中函数形参的类型是 , 位置是写在函数定义时函数名后面的括号中c语言中函数形参的类型是,比如
int max(int x, int y)
{函数内容}
这个函数,形参就是函数名max后面括号里定义的x和y
而实参全称实际参数,是c语言中函数形参的类型是你在这个函数之外调用该函数的时候 , 函数名后的括号中的内容
比如
main()
{
int a=3,b=4;
int c=max(a,b);
}
在int c=max(a,b)这一行可以看到 , 实参就是max括号后的a和b
C语言中的实参可以是任意类型的吗?形参可以是常量、变量或表达式吗?实参可以是常量、变量、表达式、函数等任意类型,形参只能是变量,在被定义的函数中,必须指定形参的类型 。
形式参数(形参):定义函数名和函数体时需要用的参数,目的是用来接收调用该函数时传递的参数 。
【c语言中函数形参的类型是 c语言中函数的形式参数】实际参数(实参):传递给被调用函数的值 。
通俗的来讲,形参就像物理计算中的公式中的符号,比如Ω,A,V等,而实参就是在计算中的实际的数值 。调用过程就是实现形参与实参的结合,把实参的值通过调用传递给形参,相当于把具体的值代入公式进行计算 。
扩展资料:
两者的区别:
区别1
形参只能是变量 , 在被定义的函数中,必须指定形参的类型 。
实参可以是常量、变量、表达式、函数等,
区别2
形参:没有确定的值
实参:无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参 。因此应预先用赋值,输入等办法使实参获得确定值 。
区别3
形参变量在未出现函数调用时 , 并不占用内存 , 只在调用时才占用 。调用结束后,将释放内存 。
开辟内存存储数据
C语言中,实参的隐含存储类型是? 形参的隐含存储类型是? A、auto B、static C、extern D、register答案都选A:上面几位胡说霸道 。
不是static形参存储类型只有两种可能,一是auto类型,而是register类型 。我给你细细解说
auto 就是堆栈存储 而register的是cpu内部寄存器存储
具体函数的形参采用那种存储方法,这和函数的“调用规则(calling convention)”有关 。
调用规则主要设计参数的传递,入栈顺序,寄存器传参,函数返回值的存储和清栈者 , 调用规则主要有 cdeclstdcallthiscallfastcall等等 。栈是函数调用必需的数据结构 。你可以在函数声明是注明函数的调用规则:如 intcdecladd (int a,int b)。注意函数有默认的调用规则,所以你再写程序时,没有必要注明调用规则 。你此外还可以添加编译选项修改调用规则 。
cdecl : (c/c++语言默认的调用规则):堆栈传参参数 , 因此是auto类型 。
stdcall :有叫做pascal,WINAPI,这个调用规则出现在windows的API函数中 。它也采用堆栈传递参数 。
thiscall:类中的函数的调用方式:参数传递和编译器有关Windows VC中 this指针用ECX寄存器存储,而unix gcc中 this用栈存储 。其他参数也是用栈存储 。
fastcall:用寄存器存储部分参数加快函数调用,其他参数用栈存储 。
所以,没有隐含的存储类型,形参的存储类型和调用规则有关 。但是如果真要学究般的考虑这个问题,则答案选A , 因为C语言函数的默认调用方式是cdecl,它的参数传递只采用了栈,因此是auto(答案A)
而实参的存储类型可以是A,B,C,D四种,隐含的类型(也就是你在定义变量是 , 不指明存储类型)是auto(答案A)

推荐阅读