189 8069 5689

c语言带参数函数 c语言带参数函数吗

C语言函数参数

汇编代码gcc:

创新互联主要从事做网站、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务大同,10余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

第一个问题的汇编:

movl $0, %ebx

incl %ebx

incl %ebx

incl %ebx

movl %ebx, 8(%esp)

movl %ebx, 4(%esp)

movl %ebx, (%esp)

call _func

汇编显示,先将n自增了3次变为3,然后调用函数,因此都是3

第二个问题的汇编:

movl $3, 16(%esp)

movl $98, 12(%esp)

movl $2, 8(%esp)

movl $97, 4(%esp)

movl $1, (%esp)

call _func2

可以看出参数对应的栈地址应该是连续的

另外,这个程序在VC6下的结果完全不一样:

func for n++

   0          0          0

12ff2c     12ff30     12ff34

func for ++n

   3          2          1

12ff2c     12ff30     12ff34

func2

12ff24     12ff28     12ff2c     12ff30     12ff34

但是最后的地址也是连续的。

此类问题知道上问过多次了,可以说没有什么意义,结果与编译器实现相关,实际编程没有用处,除非写代码的人喜欢玩花俏

C语言 带参数函数的引用调用

#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的长度*/

C语言有参函数

如果是诸如函数声明int fun(int b[]),这个是传的地址,如果fun内部有赋值操作,那么会改变数组b的元素的值

如果是执行语句fun(b[i]);那么传的就是b[i]这个值,执行完fun后,b[i]的值不会变

a是一个指向指针的指针,a里面的内容是另一个指针p的地址,那么*a就是p的地址,**a就是*p。

同理,b的内容是另一个指针q的地址,*b就是q的地址,**b就是*q

t = *a, 那么t的内容就是p的地址,

*a = *b, a里面的内容变成了q的地址,即*a是q的地址,**a就是*q

*b = t, b里面的内容变成了p的地址,即*b是p的地址,**b就是*p

这三句,将**a的值和**b的值互换了,是对指针的操作。

传值方式:向函数传递参数时,先复制一份参数,然后才将复制品传给参数。函数中所有对参数的操作,就只是在使用复制品。不会改变传递前的参数本身。

传址方式:将地址传送给函数,函数对该地址的内容操作,相当于对实参本身的操作

C语言关于带参的主函数

主函数的实参是由操作系统传递的。

c++规定的主函数标准格式(c语言未具体规定):int

main(int

argc,

char

*argv[])

其中int

argc

表示操作系统传递给程序的参数个数,char

*argv[]

存储各个参数。

例如:

若有程序如下:

int

main(int

argc,

char

*argv[])

{

int

i;

printf("您输入了

%d

个参数\n分别是:",argc);

for(i=0;i

运行-

cmd

-

输入

c:\app.exe

hello

world!

回车

执行结果将是:

您输入了

3

个参数

分别是:c:\app.exe

hello

world!

"

注意,第一个参数值将是你程序的文件名。

C语言带参数的函数

#include cstdlib

#include iostreamusing namespace std;

int calculate( int a, int b, int c )

{

return a*a*a+b*b*b+c*c*c;

}

int main(int argc, char *argv[])

{

int x, y, z, l;

cout " 计算等式的结果 " endl;

cout " ------------------------------------------------- " endl;

cout " 请输入x,y和z的值: ";

cin x y z;

l = calculate( x, y, z );

cout " 这3个数的立方和是 " l endl;

system("PAUSE");

return EXIT_SUCCESS;

}

做好了,请检查。。。

C语言里面,什么是有参函数,什么是无参函数

无参函数,是指在主调函数调用被调函数时,主调函数不向被调函数传递数据。无参函数一般用来执行特定的功能,可以有返回值,也可以没有返回值,但一般以没有返回值居多。

有参函数,是指在主调函数调用被调函数时,主调函数通过参数向被调函数传递数据。在一般情况下,有参函数在执行被调函数时会得到一个值并返回给主调函数使用。

扩展资料

1、定义有参函数的一般形式为:

函数类型 函数名(参数类型1 参数名1, 参数类型2 参数名2, …, 参数类型n 参数名n)

{

声明部分

语句部分

}

2、有参函数使用注意事项:

(1)在定义函数时,必须要指定形参的类型。实参与形参的个数必须相等,若不相等就是语法错误。此外,实参与形参的类型要相同或赋值兼容。最好是相同,这样不容易出错。如果不相同则实参按形参的类型转化,然后再送给形参。

(2)在传递数据时,实参与形参是按顺序一一对应的。


当前标题:c语言带参数函数 c语言带参数函数吗
标题路径:http://cdxtjz.com/article/hjidoc.html

其他资讯