c语言任意类型变量函数 c语言任意类型变量函数是什么
C语言中的实参可以是任意类型的吗?形参可以是常量、变量或表达式吗?
实参可以是常量、变量、表达式、函数等任意类型,形参只能是变量,在被定义的函数中,必须指定形参的类型。
创新互联公司专注于金华企业网站建设,成都响应式网站建设,购物商城网站建设。金华网站建设公司,为金华等地区提供建站服务。全流程按需求定制开发,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
形式参数(形参):定义函数名和函数体时需要用的参数,目的是用来接收调用该函数时传递的参数。
实际参数(实参):传递给被调用函数的值。
通俗的来讲,形参就像物理计算中的公式中的符号,比如Ω,A,V等,而实参就是在计算中的实际的数值。调用过程就是实现形参与实参的结合,把实参的值通过调用传递给形参,相当于把具体的值代入公式进行计算。
扩展资料:
两者的区别:
区别1
形参只能是变量,在被定义的函数中,必须指定形参的类型。
实参可以是常量、变量、表达式、函数等,
区别2
形参:没有确定的值
实参:无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使实参获得确定值。
区别3
形参变量在未出现函数调用时,并不占用内存,只在调用时才占用。调用结束后,将释放内存。
开辟内存存储数据
C语言怎么做交换两个任意类型变量的值的一个函数
要交换任意变量 那么就只能通过指针来进行
不考虑变量类型,而直接交换值。
需要三个参数,两个变量地址,以及变量所占的空间。
赋值可以用memcpy
代码如下:
void super_swap(void * a, void *b, int size)
{
void *p = malloc(size);
memcpy(p, a, size);
memcpy(a,b,size);
memcpy(b,p,size);
free(p);
}
c语言实现任意类型变量交换函数
百度上找的答案,这个问题挺难的,至少我不会,,,学习c语言好今年了。
#includestdio.h
#define SCANF(m) scanf("%"#m"%"#m,m##a,m##b)
#define PRINTF(m) printf("交换结果:%"#m"\t%"#m"\n",m##a,m##b)
void swap(char,void*,void*,void*);
int main()
{
unsigned ua,ub,ut;
int da,db,dt;
float fa,fb,ft;
double lfa,lfb,lft;
char ca,cb,ct,ch;
printf("数据类型:");
printf("u-无符号整型\ti-有符号整型\tf-单精度实型\td-双精度实型\tc-字符型\n");
printf("请选择\n");
scanf("%c",ch);
fflush(stdin);
printf("请输入两个指定类型的数据:");
switch(ch)
{
case 'u':SCANF(u);swap(ch,ua,ub,ut);PRINTF(u);break;
case 'i':SCANF(d);swap(ch,da,db,dt);PRINTF(d);break;
case 'f':SCANF(f);swap(ch,fa,fb,ft);PRINTF(f);break;
case 'd':SCANF(lf);swap(ch,lfa,lfb,lft);PRINTF(lf);break;
case 'c':SCANF(c);swap(ch,ca,cb,ct);PRINTF(c);break;
}
}
void swap(char c,void *p1,void *p2,void *p3)
{
switch(c){
case 'u':*(unsigned *)p3=*(unsigned *)p1;*(unsigned *)p1=*(unsigned *)p2;*(unsigned *)p2=*(unsigned *)p3;break;
case 'i':*(int *)p3=*(int *)p1;*(int *)p1=*(int *)p2;*(int *)p2=*(int *)p3;break;
case 'f':*(float *)p3=*(float *)p1;*(float *)p1=*(float *)p2;*(float *)p2=*(float *)p3;break;
case 'd':*(double *)p3=*(double *)p1;*(double *)p1=*(double *)p2;*(double *)p2=*(double *)p3;break;
default :*(char *)p3=*(char *)p1;*(char *)p1=*(char *)p2;*(char *)p2=*(char *)p3;break;
}
}
分享标题:c语言任意类型变量函数 c语言任意类型变量函数是什么
文章链接:http://cdiso.cn/article/dopjeje.html