main函数包含两个参数,比如代码:
成都创新互联公司主要从事网站制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务隆阳,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
#include stdio.h
int main(int argc, char *argv[])
{
int i = 0;
for (; i argc; ++i)
{
printf("Arg index:%d,value:%s\n", i, argv[i]);
}
return 0;
}
其中,argc表示参数的个数,argv是一个指针数组,里面保存的是参数列表。
默认情况下,argc的个数为1,即主程序的名字,argv[0]里就是主程序名字
如果要给主程序传参,在主程序后面跟上参数就行了,假如程序名叫Send.exe,则使用如下方式调用:Send.exe arg1 arg2 arg
参数之间用空格隔开
如图:
如果在开发环境里面调用,也可以在IDE里设置参数,如VC6里面:
在工程--设置,选中调试选项卡,在应用程序参数里面输入参数即可,空格隔开多个参数
C语言中,函数调用的一般形式为:函数名(实际参数表)
对无参函数调用时则无实际参数表。实际参数表中的参数可以是常数,变量或其它构造类型数据及表达式。各实参之间用逗号分隔。
在C语言中,可以用以下几种方式调用函数:
1、函数表达式:函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。例如:z=max(x,y)是一个赋值表达式,把max的返回值赋予变量z。
2、函数语句:函数调用的一般形式加上分号即构成函数语句。例如: printf ("%d",a);scanf ("%d",b);都是以函数语句的方式调用函数。
3、函数实参:函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。
C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。最近25年是使用最为广泛的编程语言。
C语言是由UNIX的研制者丹尼斯·里奇(Dennis Ritchie)于1970年 由 肯·汤普逊(Ken Thompson)所研制出的B语言的基础上发展和完善起来的。目前,C语言编译器普遍存在于各种不同的操作系统中,例如UNIX、MS-DOS、Microsoft Windows及Linux等。C语言的设计影响了许多后来的编程语言,例如C++、Objective-C、Java、C#等。
直接调用即可。如下示例:
#includestdio.h#define sum(b,c){int d=0;d=b+c;printf("两者的和:%d\n",d);}int main(){ int x=0,y=0; scanf("%d%d",x,y); sum (x,y); return 0;}
拓展资料
使用宏函数或者宏函数时,注意如下几点:
1.宏函数的参数没有类型,预处理器只负责做形式上的替换,而不做参数类型检查,所以传参时要格外小心。
2.宏函数定义要注意格式,尤其是括号。
如果上面的宏函数写成 #define MAX(a, b) (ab?a:b),省去内层括号,则宏展开就成了k = (i0x0fj0x0f?i0x0f:j0x0f),运算的优先级就错了。同样道理,这个宏定义的外层括号也是不能省的。若函数中是宏替换为 ++MAX(a,b),则宏展开就成了 ++(a)(b)?(a):(b),运算优先级也是错了。
3.宏函数往往会导致较低的代码执行效率。
若是普通函数,则通过递归,可取的最大值,时间复杂度为O(n)。但若是宏函数,则宏展开为( a[n]max(n-1)?a[n]:max(n-1) ),其中max(n-1)被调用了两遍,这样依此递归下去,时间复杂度会很高。
#include stdio.h
void fun(int * a,int k);
void main()
{
int a[10];
printf("请输入10个整数:\n");
for(int i=0;i10;i++)
{
scanf("%d",a[i]);
}
fun(a,sizeof(a)/sizeof(a[0]));
}
void fun(int a[],int k)//这就是你想要的函数
{
int g0=0,t0=0,e0=0;/*g0就是0,t0就是小于0,e0就等0*/
for(int i=0;ik;i++)
{
if(a[i]0) g0++;
if(a[i]==0) e0++;
if(a[i]0) t0++;
}
printf("大于0的个数为:%d\n",g0);
printf("小于0的个数为:%d\n",t0);
printf("等于0的个数为:%d\n",e0);
}
/*
说明就和ichenq的差不多,只是ichenq的那个有问题,比如他的if语句里多了几个";"号,导致无没通过,另外我用他的函数来测试得不到想要的结果
sizeof(a)/sizeof(a[0])就是数组a的长度*/
这就是递归调用
递归要两个方面注意
一个是结束递归的条件,也就是当满足一个条件是,返回一个固定的值
一个是改变递归条件的语句。也就是不满足条件的时候,调用自身,但是函数的参数要改变
如求n!就是阶乘
int f(int n)
{
if(n==0)
return 0;
if(n==1) //这里是结束条件
return 1;
else
return n*f(n-1); //这里是改变条件
}