1. 在c语言中函数的默认参数类型
在许多c语言初学者中编写函数时,都喜欢将无参函数中的参数类型忽略。
但是实际上 默认的参数类型 不是无参 void ,而是接受 任意数量和类型的参数 。也就是说 int func() 和 int func(void) 是不一旅纤样的。下面通过一个例子加深了解一下在C语言中函数的默认参数类型:
拆裂仿 所以说,在使用c语言编写无参函数时,一定要把 void 写上去源逗,不然会有安全隐患。
2. C语言中的实参可以是任意类型的吗形参可以是常量、变量或表达式吗
实参可以是常量、变量、表达式、函数等任意类型,形参只能是变量,在被定义的函数中,必须指定形参的类型。
形式参数(形参):定义函数名和函数体时需要用的参数,目的是用来接收调用该函数时传耐胡递的参数。
实际参数(实参):传递给被调用函数的值。
通俗的来讲,形参就像物理计算中的公式中的符号,比如Ω,A,V等,而实参就是在计算中的实际的数值。调用过程就是实现形参与实参的结合,把实参的值通过调用传递给形参,相当于把具体的值代入公式进行计算。
(2)c语言参数是什么类型扩展阅读:
两者的区别:
区别1
形参只能是变量,在被定义的函数中,必须指定形参的类型。
实参可以是常量、变量、表达式、函数等,
区别2
形参:没有确定的值
实搭哪参:无论实昌枝拦参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。
区别3
形参变量在未出现函数调用时,并不占用内存,只在调用时才占用。调用结束后,将释放内存。
开辟内存存储数据
3. C语言形式参数和实际参数分别是什么,最好举个简单的例子
声明定义函数时的参数是形式参数
调用函数使用时传入的参数是实际含慎参数
比如说声茄老侍明一个函数:
int fun(int num);
这里的num就是形式参数。
调用一个函数:x = fun(num);
这里的num就是颤吵实际参数。
4. C语言中参数类型问题
C语言中:函数的形参中:如果形参在函数调用前必须确定其值,称这样的形参为函数的入口参数,如果形参的值在函数调用结束后才能被确定,称这样的形参为函数的出口参数(例如指针形参所指向的变量的值在函数调用结束后才能被确定)
如本例:函数function()中第一个形参就是入口参数,第二个参数就是出口参数,为了让其他人更容易看懂程序,所以参数中用IN和OUT表示,更通俗易懂,IN LPSTR和OUT LPVOID是一种类型,至于是什么类型,有可能是宏定义还有可能是别名还有可能是结构体,这里代码太少
5. 在C语言里,参数是什么意思
参数就是用来代替一个数的未知数
比如你定义时间,用t做参数
当你要计算路程vt(其中v设为常量),当要算一段时间的路程,只要用这个公式,再带入一个t的值就可以了。
总之,参数就是一个符号,没有实际意义,要让他有实际意义,就给参数附一个值就可以了
形参就是没有实际意义的参数
比如上面的t
实参就是有实际意义的参数
比如把上面的t赋值的那个常量
6. C语言哪些数据类型可以作为函数参数
以下几类数据类型都可以作为函数的参数:
1、基本类型。即int、float、double、char等。
2、各种指针类型,这里包括自定义类型的指针。
3、常量。
7. C语言 函数名,函数的返回类型,函数的参数类型 是什么,怎么看
比如一个函数是
int main()
int就是函数返回贺衫芦类型,说明其返回值是一个int型常量。如果返回值是double型、float等就要把禅带int的位置上换成double、float等。若没塌渗有返回值,就是void型
8. c语言中什么是参数
如何写可变参数的C函数以及这些可变参数的函数编译器是如何实现的呢?下面是我为大家整理的关于c语言的参数介绍及使用,希望可以帮到大家哦。
简单的可变参数的C函数
下面我们来探讨如何写一个简单的可变参数的C函数.写可变参数的C函数要在程序中用到以下这些宏:
void va_start( va_list arg_ptr, prev_param );
type va_arg( va_list arg_ptr, type );
void va_end( va_list arg_ptr );
va在这里是variable-argument(可变参数)的意思.
这些宏定义在stdarg.h中,所以用到可变参数的程序应该包含这个头文件.下面我们写一个简单的可变参数的函数,改函数至少有一个整数参数,第二个参数也是整数,是可选的.函数只是打印这两个参数的值.
void simple_va_fun(int i, ...)
{
va_list arg_ptr;
int j=0;
va_start(arg_ptr, i);
j=va_arg(arg_ptr, int);
va_end(arg_ptr);
printf(%d %dn, i, j);
return;
}
我们可以在我们的头文件中这样声明我们的函数:
extern void simple_va_fun(int i, ...);
我们在程序中可以这样调用:
simple_va_fun(100);
simple_va_fun(100,200);
从这个函数的实现可以看到,我们使用可变参数应该有以下步骤:
1)首先在函数里定义一个va_list型的变量,这里是arg_ptr,这个变量是指向参数的指针.
2)然后用va_start宏初始化变量arg_ptr,这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数.
3)然后用va_arg返回可变的参数,并赋值给整数j. va_arg的第二个参数是你要返回的参数的类型,这里是int型.
4)最后用va_end宏结束可变参数的获取.然后你就可以在函数里使用第二个参数了.如果函数有多个可变参数的,依次调用va_arg获取各个参数.
如果我们用下面三种 方法 调用的话,都是合法的,但结果却不一样:
1)simple_va_fun(100);
结果是:100 -123456789(会变的值)
2)simple_va_fun(100,200);
结果是:100 200
3)simple_va_fun(100,200,300);
结果是:100 200
我们看到第一种调用有错误,第二种调用正确,第三种调用尽管结果正确,但和我们函数最初的设计有冲突.下面一节我们探讨出现这些结果的原因和可变参数在编译器中是如何处理的.
可变参数在编译器中的处理我们知道va_start,va_arg,va_end是在stdarg.h中被定义成宏的,由于1)硬件平台的不同 2)编译器的不同,所以定义的宏也有所不同,下
面以VC++中stdarg.h里x86平台的宏定义摘录如下(''号表示折行):
typedef char * va_list;
#define _INTSIZEOF(n)
((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) )
#define va_start(ap,v) ( ap = (va_list)&v + _INTSIZEOF(v) )
#define va_arg(ap,t)
( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )
9. C语言参数可以是中文吗什么是参数
c语言是不可以有中文作为程序结构的,但是在写程序的时候,为了方便,有些编译器允许我们使用中文来写备注,这个不代表C语言参数可以用中文。参数其实比较直观的讲,就是你用来表示一个数的代码,而这个代码是就是字母,但实际意义是数字。参数还可以是指针,这个你可以查书了解。想学好C语言的话,去看看英文的教材,这样对你写程序的思想是很有帮助的。当然英语不好就看中文吧。希望对你有用···
10. C语言中实参可以是任何类型吗
1.
一个有参数的函数,函数名后边括号中的参数叫做实际参数,简称实参。而被调用的函数在进行定义时,括号里的参数叫做形式参数,简称形参
2.
实参可以是常量,也可以是简单或者复杂的表达式,但是要求他们必须有确定的值,在调用发生时将实参的值传递给形参。
3.
综上所述,所以原则上实参可以是任何类型的