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

其他资讯